iOS Google Maps SDK - 无滚动和位置变化的双指缩放效果

iOS Google Maps SDK - Pinch Gesture zoom effect without scrolling and position changing

我想在不更改相机目标的情况下在 GMSMapView 中做出捏合手势。所以我添加了一个 UIPinchGestureRecognizer 来阻止 GMSUISettings 中的滚动手势。

- (void)zoomGestureHandler:(UIPinchGestureRecognizer *)recognizer
{
    if([recognizer state] == UIGestureRecognizerStatePossible)
    {

    }
    else if([recognizer state] == UIGestureRecognizerStateBegan)
    {
        NSLog(@"PINCH BEGAN\n");
        _mapView.settings.scrollGestures = NO;
    }
    else if([recognizer state] == UIGestureRecognizerStateChanged)
    {

    }
    else if([recognizer state] == UIGestureRecognizerStateEnded)
    {
        NSLog(@"PINCH END\n");
        _mapView.settings.scrollGestures = YES;
    }
    else if([recognizer state] == UIGestureRecognizerStateCancelled)
    {

    }
    else if([recognizer state] == UIGestureRecognizerStateFailed)
    {

    }
    else
    {

    }
}

它在慢速捏合手势完成时工作。如果用户做出快速捏合手势,则相机会在缩放动画后跳开。有谁知道如何通过可靠的解决方案实现我的目标?谢谢!

就此问题联系 google 的错误中心后,他们通过更新修复了该问题。

获取 google 地图 sdk:1.10.0 或更高版本。

解决方案是在配置 GMSMapview 时简单地添加这一行:

_mapView.settings.allowScrollGesturesDuringRotateOrZoom = NO;