跟踪MKMapView的centerCoordinate

car*_*ton 10 tracking key-value-observing mkmapview ios

我需要准确地跟踪centerCoordinateMKMapView同时用户放大/平移的地图,即,之间的regionWillChangeAnimated:regionDidChangeAnimated:事件.

我通过尝试锁定MKAnnotation地图的中心来测试以下方法.不幸的是,它们都不能很好地运作:

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

  • 使用UIScrollViewDelegateI 子类化MKMapView来接收scrollViewDidScroll:事件.这很有效,但是每次滚动增量都不会触发事件,从而导致生涩的更新.

  • 使用KVO通知:按照这种模式,我试着观察mapview的centerCoordinate.它适用于userLocation,但似乎没有发送通知centerCoordinate.

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

KVO似乎是最好的选择.有没有窍门,以使其与工作MKMapViewcenterCoordinate性质?

goc*_*oce 0

如果我正确理解,您正在尝试让某些东西(在您的情况下为注释)始终位于屏幕中央,对吧?不确定此注释的用途,但是可以在地图顶部放置另一个透明视图来充当注释(您也可以使该视图与地图大小相同,并让其子视图充当注释)。它会对用户产生相同的效果。比在该区域发生变化时,您可以获得 centerCoordinate 并执行您需要执行的任何处理。我认为您不需要在用户平移或捏地图时进行任何处理...更不用说注释应该具有固定的坐标。