Аннотации MapKit не отображаются на реальном устройстве iOS (iPhone 7, iOS 11). На iOS 12 Simulator все ок.
class BusStopAnnotationView: MKAnnotationView {
override init(annotation: MKAnnotation?, reuseIdentifier: String?) {
super.init(annotation: annotation, reuseIdentifier: reuseIdentifier)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func prepareForDisplay() {
super.prepareForDisplay()
displayPriority = .defaultHigh
image = #imageLiteral(resourceName: "bus")
}
}
Основной вид контроллера:
mapView.register(BusStopAnnotationView.self, forAnnotationViewWithReuseIdentifier: MKMapViewDefaultAnnotationViewReuseIdentifier)
Добавление аннотации к тесту:
private let moscowRegion = MKCoordinateRegion(
center: CLLocationCoordinate2D(latitude: 55.752729,
longitude: 37.617975),
span: MKCoordinateSpan(latitudeDelta: 1,
longitudeDelta: 1)
)
...
let a = MKPointAnnotation()
a.coordinate = moscowRegion.center
mapView.addAnnotation(a)
mapView.setRegion(moscowRegion, animated: false)
Результат:
Симулятор iOS
iPhone
Я заметил, что в iOS 11 аннотации симулятора также не появляются. Так что это проблема iOS 11. Почему на iOS 11 не готовится PrepForDisplay?