Gibt es eine direkte Methode oder einen Vorschlag, wie Sie alle Anmerkungen aus dem MKMapView erhalten?Können wir alle Anmerkungsansichten von MKMapView erhalten
Thnak Sie, Madan Mohan
Gibt es eine direkte Methode oder einen Vorschlag, wie Sie alle Anmerkungen aus dem MKMapView erhalten?Können wir alle Anmerkungsansichten von MKMapView erhalten
Thnak Sie, Madan Mohan
Sie können den Karten Zugang Anmerkungen seine annotations
Eigenschaft. Das Bereitstellen von Ansichten für alle Annotationen ist möglicherweise nicht immer möglich, da Annotationen, die derzeit nicht auf der Karte sichtbar sind, möglicherweise keine Sichten zugeordnet sind. Für beliebige Annotationen können Sie jedoch mithilfe der Methode -viewForAnnotation:
versuchen, eine Sicht zu erhalten.
Also hier, wie Sie durch alle Karten die Anmerkungen laufen kann und versuchen, ihre Ansichten zuzugreifen:
for (id<MKAnnotation> annotation in mapView.annotations){
MKAnnotationView* anView = [mapView viewForAnnotation: annotation];
if (anView){
// Process annotation view
...
}
}
In 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")
}
}
}
}
Das war super Bro. . es hat meine Zeit gerettet. . –
Dies wird eine neue Reihe von MKAnnotationViews schaffen - nicht die Rückkehr vorhandene auf Ihrer Karte. –
^Nein, es wird keine neue Annotation erstellt. Ursprüngliche Lösung ist richtig. – n13
Aneil, ich vermute, du verwirrst die MKMapView-Methode 'viewForAnnotation' (die im Vladimir-Beispiel korrekt funktioniert) mit der' MKMapViewDelegate'-Methode 'mapView: viewForAnnotation:' (die Annotationen erzeugt, aber nie direkt aufruft). – Rob