Я хочу увеличить карту до текущего местоположения пользователя при запуске. Я попытался найти местоположение пользователя, используя mapView.userLocation.coordinate, в viewDidLoad, но возвращаемая координата была (0,0), вероятно, потому, что MapKit не «находил» местоположение пользователя при запуске.iOS - Увеличить до текущего местоположения пользователя при запуске приложения
Я нашел решение, реализующее метод didUpdateToLocation. Я сделал следующее:
- (void) locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
if (hasZoomedAtStartUp == NO)
{
[self zoomAtStartUp]; // my method to zoom the map
hasZoomedAtStartUp = YES;
}
}
hasZoomedAtStartUp переменная Я создал на .h файл и initialied его с NO в ViewDidLoad.
Это решение работает нормально, но я хотел бы знать, есть ли другой способ сделать это без инструкции if. Этот IF имеет значение justo для startUp, поэтому я хочу удалить его по соображениям производительности.
Мне нужна служба определения местоположения все время, потому что я разрабатываю (на самом деле для изучения) приложение на основе карты. Оператор If не является большой проблемой производительности, но, поскольку мне это нужно все время, это может быть. Интересно, могу ли я выполнить эту задачу в другом месте, потому что мне это нужно только один раз (при запуске). – Beraldo
@ Ник, нет, я не согласен с вами, не было бы проблем, если кому-то не нужно постоянно устанавливать службы поиска.нам просто нужно правильно запрограммировать метод didUpdateToLocation и stopUpdatingLocation. Both.We можно сделать это. Предположим, что мы показываем CurrentLocation по определенному (A). Затем нам просто нужно вызвать didUpdateToLocation из ViewLoadingTime и вызвать stopUpdatingLocation, когда View go to disAppear (- (void) viewWillDisappear: (BOOL) анимированный метод.). – Kamarshad