Показать текущее местоположение пользователя с помощью MKMapView?

Я пытаюсь показать текущее местоположение пользователя, установив свойство MKMapView т.е. setShowsUserLocation в YES . По умолчанию стрелка появляется в верхнем левом углу экрана iPhone, когда приложение начинает обновлять местоположение пользователя. Но после отображения текущего местоположения стрелка должна исчезнуть, но ее все еще присутствует, пока приложение запущено, что означает, что приложение все еще остается обновление местоположения в фоновом режиме? так как я могу остановить обновление текущего местоположения? Я внедрил делегата, который немедленно вызван.

3 Solutions collect form web for “Показать текущее местоположение пользователя с помощью MKMapView?”

Если карта видна и имеет showUserLocation установлен на YES, она продолжает обновляться в фоновом режиме.

Вам нужно отменить это, когда представление исчезнет или когда приложение перейдет в фоновый режим. Лучшим способом было бы, вероятно, зарегистрировать ваш viewController для получения уведомления для UIApplicationDidEnterBackgroundNotification и UIApplicationDidBecomeActiveNotification .

 - (void)viewDidLoad{ [super viewDidLoad]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appToBackground) name:UIApplicationDidEnterBackgroundNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appReturnsActive) name:UIApplicationDidBecomeActiveNotification object:nil]; } 

Затем в методе, вызванном этим уведомлением, измените свойства отображения карты относительно userLocation :

 - (void)appToBackground{ [mapview setShowsUserLocation:NO]; } 

А также

 - (void)appReturnsActive{ [mapview setShowsUserLocation:YES]; } 

Убедитесь, что эти методы действительно вызываются путем установки там точки останова и возвращения на главный экран.

Я согласен с Майклом Кернаханом, я уверен, что в MKMapView есть состояние MKMapView .

MKMapView похоже, пытается самостоятельно удалить userLocationAnnotation (синюю точку), как только он осознает, что потерял доступ к службам определения местоположения.

Тем не менее, это не кажется защищенным, и если разработчик также выдает [mapView setShowsUserLocation:NO] , он, скорее всего, MKMapView крах из-за гонки между внутренним потоком userLocationAnnotation , пытающейся удалить userLocationAnnotation , и поток, который вызов setShowsUserLocation:NO .

Вы можете остановить обновление местоположения, отправив сообщение менеджеру местоположения [self.locationManager stopUpdatingLocation];

Что касается вашего случая, пытались ли вы перестать показывать местоположение пользователей?

  • Как правильно повернуть оверлей на карте?
  • Удалить MKAnnotationView Вызов по умолчанию из представления
  • получить привязанные координаты с помощью iphone mapkit
  • Странное поведение MKMapView при настройке MKMapCamera в режиме MKUserTrackingModeFollowWithHeading
  • Нарисуйте более одной группы строк в MKMapView с использованием MKPolyline
  • Устранение неполадок преобразования координат MapKit в координаты экрана
  • MKLocalSearch не находит очевидных результатов
  • MKMapSnapshotter использует невероятное количество CPU и RAM
  • MapView обнаруживает прокрутку
  • Ошибка приложения при аннотации MapKit
  • Приложение iOS получает дросселирование от локальных запросов
  • Interesting Posts

    Алгоритм расстояния Левенштейна лучше, чем O (n * m)?

    Недействительный атрибут Google Analytics

    Загрузка изображения на Parse.com с помощью AFNetworking, вызывающего поврежденное изображение

    Нужно ли проверять / обновлять квитанцию ​​магазина приложений при запуске в iOS?

    Как получить цвет пикселя в UIImage с помощью Swift?

    iOS Как разрешить пользователям регистрировать учетную запись / Как создать базу данных пользователей

    Утечки EASession

    Уведомление PushBase Firebase, не работающее в фоновом режиме и приложении, неактивно в swift 3.0

    Метод ручного поворота ломается с боковым переключателем

    ios ipad: поворот TabBar в левую сторону в ландшафтном режиме, с изменением трансформации и ограничения

    Как экспортировать учетную запись Facebook в Настройки

    изменение цвета titleFor Header в разделе

    Свойство объекта с сильной ссылкой становится нулевым

    проблема с текстовым файлом

    поиск или очистка видеопотока в обратном порядке

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.