パーサーxmlから定義された多くの注釈ピンを持つMKMapViewがあります。それは私のコードです:
-(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 が読み込まれると、タイトル アノテーション、サブタイトル アノテーション、およびすべてのピンが異なる色で表示されます。
しかし、マップをスクロールして特定のレベルでズームインし、再度ズームアウトすると、すべてのピンが紫色になります。そこで何が起こっているのですか?
2 つのメソッド (「annotation」と「annotation2」ではなく) で同じ「annotation」(id) も使用しようとしましたが、結果はありません。
それを回避し、マップのスクロールとズーム後に pinColors を保持する方法はありますか?