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