我正在为我的iOS应用程序使用Google Maps SDK。
您可以使用两种手势之一放大地图。
- 双击
- 双击 ->按住 -> 向下拖动
在第一种方式中,地图放大,但地图移动到我双击的位置附近。在第二种方法中,地图会放大到当前地图中心。
我也想在第一个手势上实现第二种行为(地图停留在当前中心而不是移动(。我该怎么做?
编辑:基本上行为应该与官方谷歌地图双击相同。
这是 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_;
}