Я пытаюсь внедрить аннотацию в свой mapkit, который я использую
mapView.register(EventMarkerView.self, forAnnotationViewWithReuseIdentifier: MKMapViewDefaultAnnotationViewReuseIdentifier)
Однако я часто вижу такой формат
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
guard let annotation = annotation as? Event else { return nil }
let identifier = "marker"
var view: MKMarkerAnnotationView
if let dequeuedView = mapView.dequeueReusableAnnotationView(withIdentifier: identifier)
as? MKMarkerAnnotationView {
dequeuedView.annotation = annotation
view = dequeuedView
} else {
view = MKMarkerAnnotationView(annotation: annotation, reuseIdentifier: identifier)
view.canShowCallout = true
view.calloutOffset = CGPoint(x: -5, y: 5)
view.rightCalloutAccessoryView = UIButton(type: .detailDisclosure)
}
return view
}
Буду ли яиспользовать последнюю форму, если у меня было более 1 типа аннотаций?
Мне также любопытно, если мой MKMapViewDefaultAnnotationViewReuseIdentifier
действителен?Я не выбрал его, но так как у меня есть только 1 тип аннотации, это не должно иметь значения, правильно?
Наконец, идентификатор повторного использования все еще имеет функциональность dequeueReusableAnnotationView(withIdentifier: identifier)
?