Как остановить центрирование области карты в текущем местоположении пользователя после того, как пользователь перемещает / перемещает карту
У меня есть приложение, которое отображает mapView, устанавливает регион и центрирует его по текущему местоположению пользователя. Он также отображает различные аннотации. Когда пользователь перетаскивает карту didUpdate userLocation
вызывает повторное центрирование области карты на текущее местоположение пользователя, что делает невозможным панорамирование карты. Каков наилучший подход к stopUpdating
область? Я пытался установить distanceFilter
но это не сработало. Я не уверен, как реализовать Bool iVar, о котором говорят некоторые учебники. Код, который у меня есть:
func mapView(_ mapView: MKMapView, didUpdate userLocation: MKUserLocation) {
var region = MKCoordinateRegion()
region.center = mapView.userLocation.coordinate
region.span.latitudeDelta = 0.02
region.span.longitudeDelta = 0.02
myMapView.setRegion(region, animated: true)
}
1 ответ
Вы можете удалить текущий метод делегата в пользу использования CLLocationManager
, Затем, если вам нужно установить регион просмотра карты, вы можете использовать местоположение, полученное из CLLocationManager
экземпляр в locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
, Если вы не хотите обновлять центрирование местоположения пользователя на карте, вы можете просто установить его один раз, а затем использовать местоположение по своему усмотрению.