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;
我想在不更改相机目标的情况下在 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;