在用户缩放/平移 map 时(即在centerCoordinate
和MKMapView
事件之间),我需要准确跟踪regionWillChangeAnimated:
的regionDidChangeAnimated:
。
通过尝试将MKAnnotation
锁定到 map 的中心,我已经测试了以下方法。不幸的是,它们都不能很好地工作:
UIPanGestureRecognizer
(如here所述):在触摸显示时效果很好,但在触摸手势完成后对 map 进行动画处理时不会更新。另外,更新滞后于实际的centerCoordinate
。 UIScrollViewDelegate
我subclassed MKMapView来接收scrollViewDidScroll:
事件。此方法有效,但不会在每次滚动增量时触发该事件,从而导致更新更新。 centerCoordinate
。它适用于userLocation
,但通知似乎没有发送给centerCoordinate
。 关于如何有效,准确地跟踪
centerCoordinate
的任何想法?KVO似乎是最好的选择。使它与
MKMapView
的centerCoordinate
属性一起工作是否有技巧? 最佳答案
如果我正确理解,您正在尝试使某些内容(在您的情况下为注释)始终位于屏幕中央,对吗?
不确定此注释的用途,但是否可以在 map 顶部放置另一个透明 View 作为注释(您也可以使该 View 与 map 大小相同,并让其 subview 充当注释)是否可以接受。它会对用户产生相同的效果。比该区域发生了变化,您可以获取centerCoordinate并进行所需的任何处理。我认为您在用户平移或捏 map 时不需要进行任何处理。更不用说注释的意思是具有固定的坐标。