Вы можете использовать свойство MGLMapView
isScrollEnabled
и установить для него значение false.
mapView.isScrollEnabled = false
Прекращает прокрутку, но все еще позволяет пользователю дважды нажать на карту и увеличить в другое место и ущипнуть, чтобы увеличить. Чтобы оба из них не могли изменить центральное расположение, вы должны использовать следующий метод делегата:
optional func mapView(_ mapView: MGLMapView, shouldChangeFrom oldCamera: MGLMapCamera, to newCamera: MGLMapCamera) -> Bool
Нечто похожее на приведенный ниже код работает, но предполагает, что вы уже центрировали карту в местоположении пользователя. Также обратите внимание на! на месте пользователя ... пожалуйста, сделайте обычные проверки безопасности в вашем реальном приложении.
func mapView(_ mapView: MGLMapView, shouldChangeFrom oldCamera: MGLMapCamera, to newCamera: MGLMapCamera) -> Bool {
newCamera.centerCoordinate = mapView.userLocation!.coordinate
mapView.camera = newCamera
return true
}
Надеюсь, это поможет.