私はこれを両方試しました(MKMapView Delegate):
-(void) mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
{
for (MKAnnotationView *annotationView in views)
{
annotationView.image = [UIImage imageNamed:@"itemType2.png"];
annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
annotationView.canShowCallout = YES;
}
}
そしてこれ(MKMapViewを持つVC上):
[self.theMapView addAnnotations:annotationsArray];
for (id <MKAnnotation> itemAnnotation in self.theMapView.annotations)
{
MKAnnotationView *itemAnnotationView = [self.theMapView viewForAnnotation:itemAnnotation];
itemAnnotationView.image = [UIImage imageNamed:@"itemType2.png"];
itemAnnotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
itemAnnotationView.canShowCallout = YES;
//[self.theMapView setNeedsDisplay];
}
MKAnnotationView の外観の変更に成功することなく、それらは開示ボタンなどのない単純な赤いピンとして表示されます....
サブクラス化された MKMapView を作成し、 - (MKAnnotationView *)viewForAnnotation:(id < MKAnnotation >)annotation を使用してそれらを変更する唯一の方法ですか??? 注釈を変更するためだけに追加のサブクラスを作成する必要があると思いますが、上記のメソッドが機能しないのはなぜですか?