Обработчик быстрого завершения для анимации mapView.setRegion?

Я пытаюсь понять, как определить, когда анимация завершена для следующего:

self.mapView.setRegion(MKCoordinateRegionForMapRect(mapRect), animated: true)

Не похоже, что setRegion поддерживает обработчик завершения, как другие команды.

Я знаю, как создать универсальный обработчик завершения, используя что-то вроде этого: Как мне создать функцию с обработчиком завершения в Swift?

Но я не знаю, какую переменную проверить, чтобы убедиться, что анимация завершена.


person Joe    schedule 15.02.2018    source источник


Ответы (1)


Для этой цели вы можете реализовать MKMapViewDelegate протокол. Из документов:

Поскольку многие операции с картой требуют, чтобы класс MKMapView загружал данные асинхронно, представление карты вызывает эти методы, чтобы уведомить ваше приложение о завершении определенных операций.

Этот метод должен делать то, что вы хотите:

optional func mapView(_ mapView: MKMapView, regionDidChangeAnimated animated: Bool)

Сообщает делегату, что регион, отображаемый на карте, только что изменился.

person Mike Taverne    schedule 15.02.2018