2014-12-05 122 views
0

enter image description here自定義MKAnnotationView與多個圖像

上面是我想要做的事情的一個例子。我有兩個圖像,「marker.png」和「userImage.png」。我可以讓每個單獨顯示爲註釋,但是我想將標記背景上的userImage覆蓋爲一個註釋。看起來上面的圖片用白色標記和頂部的圖片做了這樣的事情。我看到MKAnnotationView將UIImage作爲一個屬性,但沒有UIImageView。我怎樣才能完成我想要做的事情?

目前我能夠只顯示一個圖像

func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView! { 
    if !(annotation is MKPointAnnotation) { 
     return nil 
    } 

    let reuseId = "CustomMarker" 

    var markerView = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseId) 
    if markerView == nil { 
     markerView = MKAnnotationView(annotation: annotation, reuseIdentifier: reuseId) 
     markerView.image = UIImage(named: "marker.png") 
    } 
    else { 
     markerView!.annotation = annotation 
    } 

    return markerView 
} 

回答

2

實現自己MKAnnotationView子類。現在你已經有了一個完全屬於你的視圖!它可以有任何你想要的子視圖,或者(這是我會做的),你可以實現drawRect:並繪製它;在drawRect:中繪製複合圖像或排列圖像很容易。

或者,你可以繼續做你正在做的事情,但在代碼中合成圖像,並使用生成的組合圖像作爲image屬性。這也很簡單。

+0

事實上,我很難理解你認爲的難點在這裏!在代碼中繪製/組合圖像與iOS編程一樣基本。如果我誤解了這個問題,請告訴我。 – matt 2014-12-05 00:58:13

+0

我對開發相對比較陌生,所以這幫忙讓我看看正確的東西。謝謝!懂得它的作用 – 2014-12-05 22:39:25

+0

是的,我的書的第二章(就在「什麼是視圖」一章之後)是關於_drawing_的原因。這是真正瞭解如何在iOS編程中做的最基本和最重要的事情之一! – matt 2014-12-06 03:15:17