更改 MKAnnotationView 自定义图像?

发布于 2024-11-28 11:25:11 字数 459 浏览 1 评论 0原文

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

-(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;
}

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

I know you can create a custom annotation view using something like:

-(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;
}

.. but how do I change the image in other parts of my code.. (after it has been created with the above)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

疯了 2024-12-05 11:25:11

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

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

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

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

这样,就会重新绘制注释。

You probably don't need the answer anymore, but still, the question is unanswered. What I usually do is add a property to the annotation, telling which image should be used. It can be a BOOL, a UIImage, or pretty much whatever you like.

In viewForAnnotation, I check for that value and set the appropriate image.

Whenever I want to update the image, I change the property's value, and I remove and add the annotation :

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

That way, the annotation is re-drawn.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文