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



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

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

  1. 双击
  2. 双击 ->按住 -> 向下拖动

在第一种方式中,地图放大,但地图移动到我双击的位置附近。在第二种方法中,地图会放大到当前地图中心。

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

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

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

Obj-C:

mapView.settings.allowScrollGesturesDuringRotateOrZoom = NO;

斯威夫特 2.1

mapView.settings.allowScrollGesturesDuringRotateOrZoom = false

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

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

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

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

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

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

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

(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_;
}

最新更新