我有一个 MKMapView,其中有很多从解析器 xml 定义的注释引脚;那是我的代码:
-(IBAction)LoadAnnotation:(id)sender {
RXML element ...
RXML iterate....
[myMap removeAnnotations:myMap.annotations];
annotation.title = // NSString from RXML parser
annotation.subtitle = // NSString from RXML parser
myValue = // float value from RXML parser
[mymap addAnnotation:annotation];
}
进而
- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation2 {
MKPinAnnotationView *pinView=[[MKPinAnnotationView alloc] initWithAnnotation:annotation2 reuseIdentifier:@"MyPin"];
if ( myValue > 0 && myValue < 10) {
pinView.canShowCallout = YES;
pinView.pinColor = MKPinAnnotationColorRed;
pinView.animatesDrop=YES;
return pinView;
}
else if ( myValue > 10 && myValue < 20 ) {
pinView.canShowCallout = YES;
pinView.pinColor = MKPinAnnotationColorGreen;
pinView.animatesDrop=YES;
return pinView;
}
pinView.canShowCallout = YES;
pinView.pinColor = MKPinAnnotationColorPurple;
pinView.animatesDrop=YES;
return pinView;
}
好吧,当我的 MKMapView 被加载时,我可以看到标题注释、副标题注释和所有不同颜色的图钉。
但是,如果我在地图上滚动并放大到某个级别,然后再次缩小,所有的大头针都会变成紫色。那里发生了什么?
我也尝试在这两种方法中使用相同的“注释”(id)(而不是“注释”和“注释2”),但我没有结果。
有没有办法避免这种情况并在地图滚动和缩放后保留 pinColors?