我需要在用户缩放/平移地图时,即在centerCoordinate
和MKMapView
事件之间准确跟踪regionWillChangeAnimated:
的{{1}}。
我尝试将regionDidChangeAnimated:
锁定到地图的中心,测试了以下方法。不幸的是,它们都不能很好地运作:
使用MKAnnotation
(如here所述):触摸显示屏时效果很好,但触摸手势完成后动画地图不会更新。此外,更新滞后于实际UIPanGestureRecognizer
。
使用centerCoordinate
我subclassed MKMapView接收UIScrollViewDelegate
个活动。这很有效,但是每次滚动增量都不会触发事件,从而导致生涩的更新。
使用 KVO通知:遵循this模式,我尝试观察mapview的scrollViewDidScroll:
。它适用于centerCoordinate
,但似乎没有为userLocation
发送通知。
有关如何有效准确地跟踪centerCoordinate
的任何想法?
KVO似乎是最好的选择。是否有一个技巧可以使它与centerCoordinate
的{{1}}属性一起使用?
答案 0 :(得分:0)
如果我正确理解,你正试图在屏幕的中心放置一些东西(在你的情况下是注释),对吧? 不确定这个注释是用于什么的,但是可以接受在地图顶部放置另一个透明视图作为注释(您也可以使该视图与地图的大小相同,并使其子视图充当注释)。它对用户具有相同的效果。比在该地区确实发生了变化,您可以获得中心坐标并进行您需要做的任何处理。我不认为你需要做任何处理,因为用户平移或捏住地图......更不用说注释意味着有固定的坐标。