如何根据属性值加载不同的自定义引脚或标识符?

发布于 2024-12-03 03:21:00 字数 478 浏览 0 评论 0原文

我有一个符合 的对象数组。 我使用 addAnnotations: 将此数组加载到我的注释中。

在方法中:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:    
(id<MKAnnotation>)annotation

我让每个引脚都使用以下方式加载自定义图像:

annotationView.image = [UIImage imageNamed:@"purp_pin.png"];

但是,我不希望所有引脚都加载此图像。我希望它根据符合 的对象的属性加载不同的自定义图像/标识符。

我该怎么做?

I have an array of objects that conform to <MKAnnotation>.
I load this array into my annotations using addAnnotations:.

In the method:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:    
(id<MKAnnotation>)annotation

I have every pin load a custom image using:

annotationView.image = [UIImage imageNamed:@"purp_pin.png"];

However, I don't want all the pins to load with this image. I want it to load a different custom image/identifier depending on the properties the object that conformed to <MKAnnotation> had.

How would I do this?

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

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

发布评论

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

评论(1

执手闯天涯 2024-12-10 03:21:00

如果您的对象中有一些符合 MKAnnotation 的自定义属性,则可以在 viewForAnnotation 中访问它来设置图像的一种方法如下:

MyAnnotationClass *myAnnot = (MyAnnotationClass *)annotation;

if (myAnnot.someProperty == 42)
    annotationView.image = [UIImage imageNamed:@"purp_pin.png"];
else
    annotationView.image = [UIImage imageNamed:@"default.png"];

确保 无论注释视图是出队还是创建,都会设置 image 属性。

If you have some custom property in your object that conforms to MKAnnotation, one way you can access it in viewForAnnotation to set the image is like this:

MyAnnotationClass *myAnnot = (MyAnnotationClass *)annotation;

if (myAnnot.someProperty == 42)
    annotationView.image = [UIImage imageNamed:@"purp_pin.png"];
else
    annotationView.image = [UIImage imageNamed:@"default.png"];

Make sure the image property is set regardless of whether annotation view is being dequeued or created.

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