我正在尝试更改注释引脚的颜色。但是,我希望它能够改变新的Apple注释徽标的颜色。相反,当颜色发生变化时,新徽标(如下所示)会转换为旧徽标(如下所示)。
无论如何都要更改颜色以及保留新的注释引脚吗?
这是我的代码:
class MyPointAnnotation : MKPointAnnotation {
var pinTintColor: UIColor?
}
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: "myAnnotation") as? MKPinAnnotationView
if annotationView == nil {
annotationView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: "myAnnotation")
annotationView?.canShowCallout = true
} else {
annotationView?.annotation = annotation
}
if annotation is MKUserLocation {
return nil
}
if let annotation = annotation as? MyPointAnnotation {
annotationView?.pinTintColor = annotation.pinTintColor
}
return annotationView
}
self.map.delegate = self
/// in view did load
旧针:
新针:
任何输入都将非常感谢!
答案 0 :(得分:0)
使用MKMarkerAnnotationView代替MKPinAnnotationView。
if annotationView == nil {
annotationView = MKMarkerAnnotationView(annotation: annotation, reuseIdentifier: "myAnnotation")
annotationView?.canShowCallout = true
} else {
annotationView?.annotation = annotation
}
MKMarkerAnnotationView使用markerTintColor而不是pinTintColor。 但是,这仅适用于iOS 11。 新图标仅出现在iOS 11中。