Czy istnieje jakaś bezpośrednia metoda lub jakakolwiek sugestia, jak uzyskać wszystkie adnotacje z MKMapView?Czy możemy uzyskać wszystkie widoki adnotacji z MKMapView
Thnak ty, Madan Mohan
Czy istnieje jakaś bezpośrednia metoda lub jakakolwiek sugestia, jak uzyskać wszystkie adnotacje z MKMapView?Czy możemy uzyskać wszystkie widoki adnotacji z MKMapView
Thnak ty, Madan Mohan
Można uzyskać dostęp do map w adnotacji przy użyciu jego annotations
nieruchomości. Uzyskiwanie widoków dla wszystkich adnotacji może nie zawsze być możliwe, ponieważ adnotacje, które nie są obecnie widoczne na mapie, mogą nie mieć żadnych widoków z nimi powiązanych, ale w przypadku dowolnej adnotacji możesz spróbować uzyskać widok, używając metody -viewForAnnotation:
.
Więc jak można iterację Wszystko Mapa w adnotacjach i próby uzyskania dostępu do swoich poglądów:
for (id<MKAnnotation> annotation in mapView.annotations){
MKAnnotationView* anView = [mapView viewForAnnotation: annotation];
if (anView){
// Process annotation view
...
}
}
W szybkiej 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")
}
}
}
}
To było niesamowite bro. . to oszczędzało mój czas. . –
Spowoduje to utworzenie nowego zestawu MKAnnotationViews - nie zwracają istniejące na twojej mapie. –
^Nie, nie utworzy nowej adnotacji. Oryginalne rozwiązanie jest poprawne. – n13
Aneil, podejrzewam, że mylisz metodę 'MKMapView'' viewForAnnotation' (która działa poprawnie w przykładzie Vladimira) z metodą 'MKMapViewDelegate'' mapView: viewForAnnotation: '(która tworzy adnotacje, ale nigdy nie wywołujesz bezpośrednio). – Rob