MKMapView注释改变顺序/顺序

时间:2012-08-31 13:14:29

标签: iphone annotations mkmapview mkannotation

我用地图视图中的特定图片替换了注释,方法如下:

  • (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id)annotation

但是这个方法不是按照addAnnotation的顺序执行的。

这意味着“addAnnotation:”方法由A,B,C,D ...的序列执行,但“mapView:viewForAnnotation:”方法由B,D,C,A执行...

如何使“mapView:viewForAnnotation:”方法按addAnnotation的顺序执行?

1 个答案:

答案 0 :(得分:1)

你做不到。 Apple从未承诺按照添加注释的顺序执行该功能,并且由于viewForAnnotations仅在地图当前可查看区域内的注释上调用,因此按照您要求的顺序调用它们是没有意义的。 。屏幕外的注释会发生什么?当用户滚动地图并且更多的地图进入视图时怎么办?再次遍历它们,或只是新的?

相反,您应该为每个注释添加一些信息,以便计算地图要求的视图。为实现MKAnnotationProtocol而编写的类需要包含生成正确视图所需的信息,或者包含列表中包含其余信息的项的指针。