Я создал тестовый проект с несколькими строками кода и двумя компонентами: MKMapView
и UIButton
. Я отметил mapView
вариант - Shows user location
. Также я определил действие для кнопки, оно масштабирует карту до местоположения пользователя.
Вот код от контроллера:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
self.mapView.userTrackingMode = MKUserTrackingModeFollowWithHeading;
self.mapView.delegate = self;
}
- (IBAction)changeRegion:(id)sender {
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(self.mapView.userLocation.coordinate, 200.0f, 200.0f);
[self.mapView setRegion:region animated:YES];
}
Довольно простой и понятный, не так ли? Но когда я нажимаю кнопку, я вижу странное поведение: масштабирование вида карты в указанный регион, а затем возврат к исходному масштабированию. В чем проблема? Как я могу одновременно масштабировать и отслеживать местоположение пользователя?
Я наблюдаю подобное поведение с режимом отслеживания MKUserTrackingModeFollow.
P.S. Я забыл упомянуть, что это проблема в основном для iOS7