在iOS中双击禁用谷歌地图移动

时间:2014-12-10 12:14:21

标签: ios objective-c google-maps gesture google-maps-sdk-ios

我正在使用Google Maps SDK作为我的iOS应用程序。

您可以使用两种手势之一放大地图。

  1. 双击
  2. 双击 - >保持 - >向下拖动
  3. 在第一种方式中,地图放大,但地图移动到我双击的位置附近。 在第二种方法中,地图会缩放到当前地图中心。

    我想在第一个手势上实现第二种类型的行为(地图停留在当前中心而不是移动)。我该怎么做呢?

    编辑:基本上,行为应该与官方谷歌地图双击相同。

2 个答案:

答案 0 :(得分:3)

这是GMSUISettings类中的配置项,因此您可以在GMSMapView对象的'设置'属性中访问它,如下所示,

的OBJ-C:

mapView.settings.allowScrollGesturesDuringRotateOrZoom = NO;

Swift 2.1:

mapView.settings.allowScrollGesturesDuringRotateOrZoom = false

我不得不深入研究他们的源代码来找到这个配置项,它在文档中的任何地方都没有提到。

答案 1 :(得分:2)

您可以通过设置GMSUISettings类的属性来禁用地图上的默认手势,该类可用作GMSMapView的属性。可以通过编程方式启用和禁用以下手势。请注意,禁用手势不会限制对相机设置的编程访问。

scrollGestures - 控制是启用还是禁用滚动手势。如果启用,用户可以滑动以平移相机。

zoomGestures - 控制是启用还是禁用缩放手势。如果启用,用户可以双击,双指点击或捏缩放相机。请注意,双击可能会将相机平移到指定点。

tiltGestures - 控制是启用还是禁用倾斜手势。如果启用,用户可以使用双指垂直向下或向上滑动来倾斜相机。

rotateGestures - 控制是启用还是禁用旋转手势。如果启用,用户可以使用双指旋转手势旋转相机。

在下面的示例中,平移和缩放手势均已禁用。

(void)loadView {
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:1.285
                                                          longitude:103.848
                                                               zoom:12];
  mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];
  mapView_.settings.scrollGestures = NO;
  mapView_.settings.zoomGestures = NO;
  self.view = mapView_;
}