2017-05-29 212 views
0

我想自定義我的註釋(引腳),這樣我就可以更改其圖像。我使用了一個函數(mapview)來更改圖片,所以我不知道是否應該再次使用它來更改另一組引腳的圖片;假設我有兩個地點,一家餐館和一家醫院,所以我想分別放一個盤子和一個紅十字。以下是我的功能代碼:自定義註釋引腳

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? { 
    if annotation is MKUserLocation { 
     return nil 
    } 
    var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: "identifier") 
     if annotationView == nil{ 
      annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: "identifier") 
      annotationView!.canShowCallout = true 
      annotationView!.rightCalloutAccessoryView = UIButton(type: .detailDisclosure) 

      let pinImg = UIImage(named: "curz") 
      let size = CGSize(width: 50, height: 50) 
      UIGraphicsBeginImageContext(size) 
      pinImg!.draw(in: CGRect(x: 0, y: 0, width: size.width, height: size.height)) 
      let resizedImage = UIGraphicsGetImageFromCurrentImageContext() 
      UIGraphicsEndImageContext() 
      annotationView!.image = resizedImage 
      } 
    else { 
    annotationView!.annotation = annotation 
    } 
return annotationView 
} 
+0

另外我想知道那個「標識符」是幹什麼的,它是某種類型的引腳ID? –

回答

0

正確的方式返回(不同的註釋類型的或組)對於不同的註釋類型不同的看法是繼承註釋併爲每個(爲init)分配一個不同的重用標識符。該標識符與表格視圖單元格標識符相似,用於重新使用(而不是從頭開始創建)單元格。註釋也是如此,而不是在每次「廢棄」註釋可以重新使用時創建一個新註釋。

然後在mapview viewfor annotation您可以測試annotation.identifier並分配正確的圖像。