IOS:谷歌地图边界的粗糙行为

问题描述 投票:0回答:1

我正在使用谷歌地图sdk for IOS。我使用GMSCoordinateBounds()方法设置了地图的边界。

滚动地图边界时遇到一些问题。不确定,如果这是IOS本机行为或与代码相关的东西。

实际行为:在边界处遇到粗暴行为。在界限内工作正常。

预期的行为:它应该在边界处停止滚动或放大效果,以避免粗略的行为。

这是我的代码

var mapView = GMSMapView()
var defaultCamera = GMSCameraPosition()
defaultCamera = GMSCameraPosition(target: CLLocationCoordinate2D(latitude: 12.3019, longitude: 104.0923),
                                      zoom: zoomLevels[0],
                                      bearing: defaultCamera.bearing,
                                      viewingAngle: defaultCamera.viewingAngle)
mapView.delegate = self
mapView.mapStyle = MapUtils().style
mapView.camera = defaultCamera
mapView.setMinZoom(10, maxZoom: 21)
// enable google map view handle other gesture
mapView.settings.consumesGesturesInView = false
mapView.settings.rotateGestures = false
mapView.settings.tiltGestures = false
mapView.settings.allowScrollGesturesDuringRotateOrZoom = false
// override double tap to zoom in
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(googleMapDoubleTap))
tapGesture.numberOfTapsRequired = 2
mapView.addGestureRecognizer(tapGesture)

self.myLocationMarker.map = self.mapView

任何帮助将不胜感激。提前致谢..

ios google-maps google-maps-sdk-ios
1个回答
0
投票

解决方案是在配置GMSMapview时简单地添加此行:

_mapView.settings.allowScrollGesturesDuringRotateOrZoom = NO;

要么

你可以使用这条线allowScrollGesturesDuringRotateOrZoom到你的GMSMapview。它控制是否可以偏心地执行旋转和缩放手势并滚动。默认值为YES。

mapView.settings.allowScrollGesturesDuringRotateOrZoom = false // NO for obj-c and false for swift

因此,通过将其设置为NO / false,您现在可以在标记位置不移动时执行缩放。

© www.soinside.com 2019 - 2024. All rights reserved.