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