3

我通过以下方法将注释替换为地图视图中的特定图片:

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

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

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

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

4

1 回答 1

1

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

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

于 2012-08-31T14:04:45.043 回答