问题
I have two classes that both conform to MKAnnotation
, and I was wondering, is there a way to force MapKit
to not cluster the annotation when a user zooms out and display all annotations?
回答1:
Set MKAnnotation's clusteringIdentifier
to nil.
e.g.
class BikeView: MKMarkerAnnotationView {
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 var annotation: MKAnnotation? {
willSet {
if let bike = newValue as? Bike {
clusteringIdentifier = nil
}
}
}
}
回答2:
The mentioned solution didn't work for me, but this solution worked:
final class CarPinMarkerView: MKMarkerAnnotationView {
override var annotation: MKAnnotation? {
willSet {
displayPriority = MKFeatureDisplayPriority.required
}
}
}
Hope it helps.
来源:https://stackoverflow.com/questions/48685469/disabling-mkmapview-clustering-annotations-automatically