2011-12-01 73 views
10

我需要准确跟踪MKMapViewcenterCoordinate,同时用户放大/平移地图,即在regionWillChangeAnimated:regionDidChangeAnimated:事件之间。跟踪MKMapView的中心坐标

我试图将MKAnnotation锁定到地图中心,测试了以下方法。不幸的是,他们没有工作不够好:

  • 使用UIPanGestureRecognizer(如描述here):这个工作得很好,而显示器被触摸,但触摸手势完成后不更新而地图是动画。另外,更新落后于实际的centerCoordinate

  • 使用UIScrollViewDelegatesubclassed MKMapView收到scrollViewDidScroll:事件。这工作,但事件不会触发每个滚动增量,导致生涩的更新。

  • 使用志愿通知:以下this模式,我想观察的MapView的centerCoordinate。它适用于userLocation,但通知似乎并未发送给centerCoordinate

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

KVO似乎是最好的选择。使用MKMapViewcenterCoordinate属性有什么窍门吗?

+1

你有没有通过KVO通知解决这个问题? – Jann

回答

0

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