子类MKPointAnnotation
以添加所需的任何自定义属性,例如pinTintColor
:
class MyPointAnnotation : MKPointAnnotation { var pinTintColor: UIColor? } class ViewController: UIViewController, MKMapViewDelegate { @IBOutlet var jmap: MKMapView! override func viewDidLoad() { super.viewDidLoad() jmap.delegate = self let hello = MyPointAnnotation() hello.coordinate = CLLocationCoordinate2D(latitude: 40, longitude: -73) hello.pinTintColor = .red let hellox = MyPointAnnotation() hellox.coordinate = CLLocationCoordinate2D(latitude: 34, longitude: -72) hellox.pinTintColor = .blue jmap.addAnnotation(hello) jmap.addAnnotation(hellox) } 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") } else { annotationView?.annotation = annotation } if let annotation = annotation as? MyPointAnnotation { annotationView?.pinTintColor = annotation.pinTintColor } return annotationView } }