Приведенный ниже код - это метод, который я использовал для увеличения местоположения пользователя, но затем остановил его от постоянного изменения масштаба после того, как пользователь перемещает карту. Проблема с этим методом заключается в том, что когда он запрашивает разрешение на данные о расположении пользователя в приложении, и я выбираю «да», он ничего не делает. Мне нужно покинуть страницу и вернуться, прежде чем она увеличится правильно.
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
if ([self.mapView showsUserLocation])
{
MKCoordinateRegion region;
region.center = self.mapView.userLocation.coordinate;
MKCoordinateSpan span;
span.latitudeDelta = .50; // Change these values to change the zoom
span.longitudeDelta = .50;
region.span = span;
[self.mapView setRegion:region animated:YES];
self.mapView.showsUserLocation = NO;}
}
Вышеупомянутый метод должен отслеживать изменения местоположения пользователя, а затем устанавливать местоположение, как только оно будет найдено. Затем я задаю условие в операторе if, чтобы остановить его - в противном случае он продолжит возвращаться к местоположению пользователя, когда вы перемещаете карту.