Google Maps SDK iOS - prevent map from changing location on zoom

微笑、不失礼 提交于 2019-12-01 09:31:31

Google fixed this issue with google maps sdk 1.10.0.

The solution is to simply add this line when configuring GMSMapview:

_mapView.settings.allowScrollGesturesDuringRotateOrZoom = NO;

Well, after 10 days of going back to this problem, I finally solved it! The answer was pretty easy!

Few steps here: 1. Add imageView as marker on top of the GMSMapView 2. Add UIPanGestureRecognizer to the GMSMapView (don't forget to set delegate, it is important) 3. Then use this code:

- (void) didPan:(UIPanGestureRecognizer*) gestureRecognizer
{
    if (gestureRecognizer.state == UIGestureRecognizerStateEnded)
    {
        _mapView.settings.scrollGestures = true;
    }
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    if (gestureRecognizer.numberOfTouches > 1)
    {
        _mapView.settings.scrollGestures = false;
    }
    else
    {
        _mapView.settings.scrollGestures = true;
    }
    return true;
}

Swift 3:

mapView.settings.scrollGestures = false
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!