У меня есть несколько MKMapViews на отдельных вкладках UITabBarController.Каждая карта использует пользовательские MKAnnotationViews для MKAnnotations и MKClusterAnnotations.Пользовательские MKAnnotationViews отображаются зеленым цветом со звездообразным глифом или зеленым с номером, если это для кластера.
Проблема заключается в том, что мои пользовательские MKAnnotationViews случайным образом возвращаются к отображению красного цвета по умолчанию с символом булавки.Когда я увеличу масштаб, виды начнут перерисовываться и будут правы.Я не смог последовательно воспроизвести проблему, но, кажется, это происходит, когда я ухожу от вкладки и возвращаюсь.
Есть ли способ принудительно перезагрузить представление карты, аналогичное reloadData () дляпредставление коллекции?Моя функция viewForAnnotation никогда не должна возвращать ноль, поэтому я не знаю, как это могло произойти.
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
var view = mapView.dequeueReusableAnnotationView(withIdentifier: "CustomAnnotationView") as? CustomAnnotationView
if view == nil {
view = CustomAnnotationView(annotation: annotation, reuseIdentifier: "CustomAnnotationView")
} else {
view?.annotation = annotation
}
return view
// code for the cluster annotations redacted
}