2012-09-11 17 views
0

我被困在這裏,我想我會問是否有人可以幫助我,因爲我準備把我的頭髮撕掉。如何爲每個註釋製作不同的左側附件圖像?

我用下面的下面的教程/指導和獲得儘可能年底,它的偉大工程的一個形象,但我要的是要能設置不同的圖像/縮略圖爲每個註釋

Tutorial/Guide

我一直試圖讓這個工作一段時間,我剛纔已經足夠看着它。大聲笑

我很新,當涉及到xcode所以這就是爲什麼我掙扎着它。


從OP的「建議編輯答案」:

編輯:

我似乎不能讓你說了什麼工作,我與它難倒。

如果可能的話,我在Dropbox下面添加了我的項目的副本。這可能是一個混亂的時刻,因爲我已經嘗試了很多年,並沒有去哪裏。

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

我很想只是爲了弄清楚如何做定製的標註來代替。

我不確定的一件事是代表們以及他們是如何工作的。

回答

1

想要爲每個註釋設置leftCalloutAccessoryView爲不同的圖像。

leftCalloutAccessoryViewMKAnnotationView的一個屬性,因此您需要在viewForAnnotation委託方法(您創建並返回MKAnnotationView的位置)中設置它。

viewForAnnotation委託方法獲取對在annotation參數中創建視圖所需的註釋的引用。

因此,根據annotation的某些屬性,您相應地設置了leftCalloutAccessoryView


在最原始的水平上,您可以根據annotation.title設置leftCalloutAccessoryView
例如:如果標題是「證券及期貨條例」設定圖像「蘋果」,如果標題是「ATL」設置圖像「桃」等


然而,更好的做法是創建一個單獨的屬性(在實現MKAnnotation的註釋類中),該類清楚地指示了用於註釋的圖像。這個屬性可能是UIImage本身,圖像的名稱,數字等 - 什麼最適合您的情況。

創建註釋時,在調用addAnnotation之前,請設置註釋的該屬性。

然後在viewForAnnotation委託方法,您可以設置基於自定義註釋屬性leftCalloutAccessoryView

例如,假設一個名爲imageNameNSString屬性添加到註釋類:

MKAnnotationView *av = ... //or MKPinAnnotationView 
//typical dequeue and alloc/init code here 

if ([annotation isKindOfClass:[MyAnnotationClass class]]) 
{ 
    //cast the annotation parameter to your custom class 
    //so you can easily access the custom properties... 
    MyAnnotationClass *myAnn = (MyAnnotationClass *)annotation; 

    //create UIImage based on custom property of annotation... 
    UIImage *img = [UIImage imageNamed:myAnn.imageName]; 

    //create UIImageView to use for the leftCalloutAccessoryView... 
    UIImageView *iv = [[[UIImageView alloc] initWithImage:img] autorelease]; 
    //if using ARC, remove the autorelease above 

    av.leftCalloutAccessoryView = iv; 
} 

return av; 
+0

感謝安娜,將給它在早上一試。 –

相關問題