Значение типа MKAnnotationView не имеет члена pinTintColor?

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
    guard annotation is MKPointAnnotation else { return nil }

    let identifier = "Annotation"
    var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: identifier)

    if annotationView == nil {
        annotationView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: identifier)
        annotationView!.canShowCallout = true
        annotationView!.pinTintColor = UIColor.redColor
    } else {
        annotationView!.annotation = annotation

    }

    return annotationView
}

Почему появляется ошибка "Значение типа MKAnnotationView не имеет члена pinTintColor"? Я хочу изменить цвет булавки с оранжевого на синий, не меняя изображения. Я использую swift 5.2 и xcode 11.4.1

1 ответ

С точки зрения компилятора, annotationView это MKAnnotationView?, и ничего больше. Вы можете переписать свой чек так:

if annotationView == nil {
    let pin = MKPinAnnotationView(annotation: annotation, reuseIdentifier: identifier)
    pin.canShowCallout = true 
    pin.pinTintColor = UIColor.redColor
    annotationView = pin
}
Другие вопросы по тегам