在 iOS 中双击禁用 Google 地图移动

Arn*_*tra 5 google-maps objective-c gesture ios google-maps-sdk-ios

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

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

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

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

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

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

Rao*_*Rao 5

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

对象-C:

mapView.settings.allowScrollGesturesDuringRotateOrZoom = NO;
Run Code Online (Sandbox Code Playgroud)

斯威夫特 2.1:

mapView.settings.allowScrollGesturesDuringRotateOrZoom = false
Run Code Online (Sandbox Code Playgroud)

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


Ver*_*rma 3

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

\n\n

scrollGestures \xe2\x80\x94 控制是否启用或禁用滚动手势。如果启用,用户可以滑动来平移相机。

\n\n

ZoomGestures \xe2\x80\x94 控制是否启用或禁用缩放手势。如果启用,用户可以双击、两指点击或捏合来缩放相机。请注意,双击可能会将相机平移到指定点。

\n\n

tiltGestures \xe2\x80\x94 控制是否启用或禁用倾斜手势。如果启用,用户可以使用两根手指垂直向下或向上滑动来倾斜相机。

\n\n

rotateGestures \xe2\x80\x94 控制是否启用或禁用旋转手势。如果启用,用户可以使用两指旋转手势来旋转相机。

\n\n

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

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