Есть ли какой-либо прямой метод или какое-либо предложение о том, как получить все аннотации из MKMapView?
Ты знаешь,
Мадан Мохан
Ответ 1
Вы можете получить доступ к аннотациям карт, используя его свойство annotations. Получение просмотров для всех аннотаций может быть не всегда возможным, поскольку аннотации, которые в настоящее время не видны на карте, могут не иметь никаких связанных с ними представлений, но для произвольной аннотации вы можете попытаться получить представление, используя метод -viewForAnnotation:.
Итак, как вы можете перебирать все аннотации и пытаться получить доступ к их представлениям:
for (id<MKAnnotation> annotation in mapView.annotations){
MKAnnotationView* anView = [mapView viewForAnnotation: annotation];
if (anView){
// Process annotation view
...
}
}
Ответ 2
В быстром 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")
}
}
}
}