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