在缩放后/期间更新AnnotationView

时间:2011-04-22 15:09:08

标签: iphone ios mapkit mkmapview mkannotationview

当zoomlevel发生变化时,我需要更改centerOffset的{​​{1}}属性。我不想再删除并添加AnnotationView

那么如何在缩放后访问和更新Annotations

有关于此的任何想法吗?

最诚挚的问候, 基督教

1 个答案:

答案 0 :(得分:4)

一种解决方案是使用这些MKMapView方法:

- (NSSet *)annotationsInMapRect:(MKMapRect)mapRect // iOS4.2+ only!

检索可见的注释,然后使用:

- (MKAnnotationView *)viewForAnnotation:(id<MKAnnotation>)annotation;

获取相应的视图(如果第一个函数正确工作,则永远不应返回nil)

然后我想改变centerOffset应该做的工作,(加上可能有些-[UIView setNeedsDisplay/Layout]来强制重绘)

根据zoomLevel改变centerOffset听起来很奇怪,但我想你有理由:)