IOS: грубое поведение на границах карт Google

Я использую Google Maps SDK для 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

Любая помощь будет оценена. Заранее спасибо..

1 ответ

Решение состоит в том, чтобы просто добавить эту строку при настройке GMSMapview:

_mapView.settings.allowScrollGesturesDuringRotateOrZoom = NO;

или же

Вы можете использовать эту строку allowScrollGesturesDuringRotateOrZoom для вашего GMSMapview, Он контролирует, могут ли жесты поворота и масштабирования выполняться вне центра и прокручиваться вокруг. Значением по умолчанию является YES.

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

Таким образом, установив его на NO/false, теперь вы можете выполнять масштабирование, пока местоположение маркера не движется.

Другие вопросы по тегам