iOS MKMapView при установке местоположения пользователя в.followWithHeading не удается увеличить местоположение пользователя

Я создаю приложение на основе карты, которое, как и многие другие, включает кнопку, которая теоретически перецентрирует карту по местоположению пользователя и увеличит масштаб (если уровень масштабирования изменился). В настоящее время в viewDidLoad() у меня есть строка:

mapView.setUserTrackingMode(MKUserTrackingMode.followWithHeading, animated: true)

который успешно устанавливает режим отслеживания пользователя и удобный уровень масштабирования. Затем, когда пользователь выполняет панорамирование, режим отслеживания устанавливается на "Нет", как указано в документации, что я и хочу. Однако после панорамирования, когда IBAction вызывается с кнопки, которая содержит точно такую ​​же строку, представление карты будет повторно центрировано на местоположении пользователя и восстанавливает отслеживание, но не будет увеличивать масштаб изображения пользователя, пока mapView не будет значительно уменьшен (на уровне штата или страны). Что я могу сделать, чтобы исправить эту проблему? Я попытался установить регион вручную в зависимости от местоположения пользователей, но обнаружил, что это мешает отслеживанию пользователей. (Я установил IBAction для вызова следующей функции)

    func centerMapOnLocation(location: CLLocation, animated: Bool){
    let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate, 1000, 1000)
    mapView.setRegion(coordinateRegion, animated: animated)
}

Но при вызове этой функции режим отслеживания пользователя сбрасывается на ноль, независимо от того, был ли изменен режим отслеживания пользователя до или после вызова функции. Спасибо за помощь!

0 ответов

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