In iOS 26 i’ve a difficulty with mapKit.
i created a customized annotation utilizing “MKMarkerAnnotationView”, it really works nice with present steady iOS variations (15 to 18) however with iOS 26 the default annotation is displayed behind my annotation. i checked the Xcode UI inspector and there is a new subview within the “MKMarkerAnnotationView” referred to as “MKMarkerBalloonView” and it is the one displayed.
To be clear, the difficulty is when working the app on iOS 26, even when i construct with iOS 18.x i nonetheless have the issue on gadgets working iOS 26.
i additionally tried opting out of the liquid Glass by including UIDesignRequiresCompatibility within the information.plist however it change nothing.
here is the “MKMarkerAnnotationView“
static let reuseId = "AnnotationMarkerView"
non-public lazy var annotationView: UIView = {
let hostController = UIHostingController(rootView: AnnotationView())
let view: UIView = hostController.view
view.translatesAutoresizingMaskIntoConstraints = false
view.backgroundColor = .clear
view.accessibilityElementsHidden = true
return view
}()
init(annotation: MKAnnotation, reuseIdentifier: String?) {
tremendous.init(annotation: annotation, reuseIdentifier: reuseIdentifier)
self.setupUI()
self.displayPriority = .required
self.collisionMode = .circle
self.titleVisibility = .hidden
self.subtitleVisibility = .hidden
self.markerTintColor = .clear
self.glyphTintColor = .clear
self.glyphImage = nil
self.selectedGlyphImage = nil
self.glyphText = nil
}
required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been applied") }
non-public func setupUI() {
self.backgroundColor = .clear
self.addSubview(self.annotationView)
self.annotationView.centerXAnchor.constraint(equalTo: self.centerXAnchor, fixed: 0).isActive = true
self.annotationView.centerYAnchor.constraint(equalTo: self.centerYAnchor, fixed: -24).isActive = true
self.bounds = .init(origin: .zero, measurement: .init(width: 0, peak: 0))
}
}
and the MapViewDelegate:
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
guard let annotation = annotation as? Annotation else {
return nil
}
let annotatonView = AnnotationMarkerView(annotation: annotation, reuseIdentifier: AnnotationMarkerView.reuseId)
return annotatonView
}
}
subject on iOS 26: