Подтвердить что ты не робот

Можем ли мы получить все аннотации из MKMapView

Есть ли какой-либо прямой метод или какое-либо предложение о том, как получить все аннотации из MKMapView?

Ты знаешь, Мадан Мохан

4b9b3361

Ответ 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")
                }
            }
        }
}