XCode9.4.1 Swift:在地图注释上显示图像而不是文本

时间:2018-07-19 16:49:14

标签: swift dictionary annotations

您知道单击MKMapView中的注释时标题和副标题的显示方式。 如何显示图像而不是字幕文本? 我正在使用的atm:

class customPin: NSObject, MKAnnotation {
   var coordinate: CLLocationCoordinate2D
   var title: String?
   var subtitle: String?

   init(pinTitle: String, pinSubTitle: String,    
      Location:CLLocationCoordinate2D) {
      self.title = pinTitle
      self.subtitle = pinSubTitle
      self.coordinate = Location
   }
}

我尝试将“ String”替换为“ UIImage”(位于“ Subtitle”处),但这也不起作用

感谢您的帮助,  古斯

1 个答案:

答案 0 :(得分:0)

MKAnnotation仅管理引脚的数据,而不管理外观。 MKAnnotationView是图钉的视觉表示。您可以使用mapView(_:viewFor:)方法来操作并生成此代码:

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
    let identifier = "customPin"
    var annotationView: MKAnnotationView

    if let dequeuedView = mapView.dequeueReusableAnnotationView(withIdentifier: identifier) as? MKPinAnnotationView {
        annotationView = dequeuedView
        annotationView.annotation = annotation
    } else {
        annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: identifier)
        annotationView.canShowCallout = true
        annotationView.image = UIImage(named: "example")
    }   

    return annotationView
}

另请参阅:Apple Developer Documentation on MKAnnotationView