是否有关于如何从MKMapView
获取所有注释的直接方法或任何建议?
答案 0 :(得分:57)
您可以使用其annotations
属性访问地图的注释。获取所有注释的视图可能并不总是可能,因为地图上当前不可见的注释可能没有与之关联的视图,但对于任意注释,您可以尝试使用-viewForAnnotation:
方法获取视图。
所以在这里你可以迭代所有地图的注释并尝试访问他们的观点:
for (id<MKAnnotation> annotation in mapView.annotations){
MKAnnotationView* anView = [mapView viewForAnnotation: annotation];
if (anView){
// Process annotation view
...
}
}
答案 1 :(得分:5)
在swift 3中。
func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
let selectedAnnotation = view.annotation
for annotation in mapView.annotations {
let viewI = mapView.view(for: annotation)
if !(viewI?.annotation is MKUserLocation){
if annotation.isEqual(selectedAnnotation) {
viewI?.image = UIImage(named: "focus.png")
showLifeEventView(anotation: view) //did select a point on Map.
}else{
viewI?.image = UIImage(named: "point.png")
}
}
}
}