如何为每个注释创建不同的左侧附件图像?

时间:2012-09-11 20:35:58

标签: ios ios5 uiimageview mkmapview mkannotationview

我被困在这里,我想我会问是否有人可以帮我解决这个问题,因为我正准备把头发撕掉。

我正在使用下面的教程/指南并且到目前为止它对于一个图像非常有用,但我想要的是能够为每个单独的注释设置不同的图像/缩略图

Tutorial/Guide

我一直试图让这个工作暂时工作一段时间,而我已经足够了解它。洛尔

对于xcode来说,我是新手,所以这就是我为什么要挣扎的原因。


从OP的“建议编辑到答案”:

编辑:

我似乎无法得到你说的工作,我很难受。

我已经在下面的Dropbox添加了我的项目副本,如果你有可能检查它。这可能是因为我已经尝试了很长时间并且没有在任何地方乱七八糟。

https://www.dropbox.com/sh/6ddhege240konzo/XrpuFYF5y5

我很想知道如何更换自定义标注。

我不确定的一件事是代表们以及他们的工作方式。

1 个答案:

答案 0 :(得分:1)

您希望为每个注释将leftCalloutAccessoryView设置为不同的图像。

leftCalloutAccessoryViewMKAnnotationView的属性,因此您需要在viewForAnnotation委托方法(您创建并返回MKAnnotationView的位置)中设置它。< / p>

viewForAnnotation委托方法获取在annotation参数中为您创建视图所需的注释的引用。

因此,根据annotation的某些属性,您可以相应地设置leftCalloutAccessoryView


在最粗略的级别,您可以根据leftCalloutAccessoryView设置annotation.title 例如:如果标题是&#34; SFO&#34;将图像设置为&#34; apple&#34;,如果标题是&#34; ATL&#34;将图像设置为&#34;桃子&#34;等等。


但是,创建一个单独的属性(在实现MKAnnotation的注释类中)可以更清楚地指示用于注释的图像。此属性可以是UIImage本身,图像名称,数字等等 - 无论什么情况最适合您的情况。

创建注释时,在调用addAnnotation之前,您需要设置注释的此属性。

然后在viewForAnnotation委托方法中,根据自定义注释属性设置leftCalloutAccessoryView

例如,假设将一个名为NSString的{​​{1}}属性添加到注释类中:

imageName