更改MKAnnotationView自定义图像?

时间:2011-08-09 17:46:50

标签: objective-c ios mkmapview mkannotation mkannotationview

我知道您可以使用以下内容创建自定义注释视图:

-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
    MKPinAnnotationView *annotationView = [[[CustomAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"CustomAnnotation"] autorelease];     
    annotationView.image = [UIImage imageNamed:@"customPin.png"];
    return annotationView;
}

..但是如何在我的代码的其他部分更改图像..(在使用上面的内容创建之后)?

1 个答案:

答案 0 :(得分:2)

您可能不再需要答案了,但仍然没有答案。我通常做的是在注释中添加一个属性,告诉我应该使用哪个图像。它可以是BOOL,UIImage,也可以是你喜欢的任何东西。

viewForAnnotation中,我检查该值并设置适当的图像。

每当我想要更新图像时,我都会更改属性的值,然后删除并添加注释:

[theMapView removeAnnotation: myAnnotation];
[theMapView addAnnotation: myAnnotation];

这样,重新绘制了注释。