跟踪MKMapView的centerCoordinate

时间:2011-12-01 03:25:09

标签: ios mkmapview tracking key-value-observing

我需要在用户缩放/平移地图时,即在centerCoordinateMKMapView事件之间准确跟踪regionWillChangeAnimated:的{​​{1}}。

我尝试将regionDidChangeAnimated:锁定到地图的中心,测试了以下方法。不幸的是,它们都不能很好地运作:

  • 使用MKAnnotation(如here所述):触摸显示屏时效果很好,但触摸手势完成后动画地图不会更新。此外,更新滞后于实际UIPanGestureRecognizer

  • 使用centerCoordinatesubclassed MKMapView接收UIScrollViewDelegate个活动。这很有效,但是每次滚动增量都不会触发事件,从而导致生涩的更新。

  • 使用 KVO通知:遵循this模式,我尝试观察mapview的scrollViewDidScroll:。它适用于centerCoordinate,但似乎没有为userLocation发送通知。

有关如何有效准确地跟踪centerCoordinate的任何想法?

KVO似乎是最好的选择。是否有一个技巧可以使它与centerCoordinate的{​​{1}}属性一起使用?

1 个答案:

答案 0 :(得分:0)

如果我正确理解,你正试图在屏幕的中心放置一些东西(在你的情况下是注释),对吧? 不确定这个注释是用于什么的,但是可以接受在地图顶部放置另一个透明视图作为注释(您也可以使该视图与地图的大小相同,并使其子视图充当注释)。它对用户具有相同的效果。比在该地区确实发生了变化,您可以获得中心坐标并进行您需要做的任何处理。我不认为你需要做任何处理,因为用户平移或捏住地图......更不用说注释意味着有固定的坐标。