Индикатор активности не работает, когда установлен флажок MKMapView «Показывать местоположение пользователя»

#ios #swift

#iOS #swift

Вопрос:

Я не могу заставить индикатор активности работать поверх MapView, когда я выбираю поле «Местоположение пользователя» для MKMapView. Я вызываю индикатор активности во время загрузки CLLocations из iCloud.

Установлен флажок «Анимация поведения» индикатора активности, а также флажок «Скрывается при остановке». Если я оставлю флажок «Местоположение пользователя» в MapView без флажка, код индикатора активности работает просто отлично. Но если я также установлю флажок «Местоположение пользователя» в MapView, индикатор активности больше не появляется. Я останавливаю индикатор активности, как только все виды CLLocation (контакты карты) добавляются в MapView.

 func mapView(_ mapView: MKMapView, didAdd views: [MKAnnotationView]) {
        ActivityIndicator.stopAnimating()
    }
  

Как я могу заставить отображаться как местоположение пользователя, так и индикатор активности?

Комментарии:

1. Поместите ActivityIndicator.stopAnimating() в более подходящее место. т.е. в обработчик завершения вашей задачи загрузки.

Ответ №1:

Местоположение пользователя является аннотацией, добавленной самим представлением карты.

Это приводит к немедленному прекращению просмотра активности, даже если вы еще не добавили свои собственные примечания.

Вы должны остановить индикатор активности, когда закончите извлечение данных и добавите аннотации, а не как побочный эффект добавления аннотаций.

Комментарии:

1. Спасибо. Теперь работает как по волшебству.