Мне нужно точно отслеживать centerCoordinate MKMapView, пока пользователь масштабирует/панорамирует карту, то есть между событиями regionWillChangeAnimated: и regionDidChangeAnimated:.
Я протестировал следующие подходы, пытаясь заблокировать MKAnnotation в центре карты. К сожалению, никто из них не работает достаточно хорошо:
-
Используя
UIPanGestureRecognizer(как описано здесь): это работает очень хорошо, пока экран коснулся, но doesn ' t, пока карта будет анимирована после завершения жестта касания. Кроме того, обновления отстают от фактическогоcenterCoordinate. -
Используя
UIScrollViewDelegateя подклассифицированный MKMapView для получения событияscrollViewDidScroll:. Это сработало, но событие не запускается при каждом приращении прокрутки, что приводит к резким обновлениям. -
Используя Уведомления KVO: следуя этой схеме, я попытался наблюдать за mapview
centerCoordinate. Он работает дляuserLocation, но уведомления не отправляются дляcenterCoordinate.
Любые идеи о том, как эффективно и точно отслеживать centerCoordinate?
KVO казался лучшим выбором. Есть ли трюк, чтобы заставить его работать с свойством MKMapView centerCoordinate?