Wie zu öffnen programmatisch MKAnnotationView rufen? (IPhone, MapKit)

stimmen
26

Ich möchte die callout für eine öffnen MKPinAnnotationViewprogrammatisch. Zum Beispiel lasse ich 10 Pins auf der Karte, und will , dass die am nächsten zu mir öffnen. Wie würde ich mich über das tun dies?

Apple hat die ‚ausgewählt‘ Parameter für bestimmte MKAnnotationView's, aber rät er direkt einstellen (das funktioniert nicht, es versucht).

Für den Rest MKAnnotationViewhat nur eine setHighlighted ( gleiche Geschichte ) und kann ShowCalloutMethode ..

Für Hinweise, ob dies möglich?

Veröffentlicht am 03/02/2010 um 18:16
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
77

In Ihrem mapViewController eine Aktion Methode erstellen:

- (void)openAnnotation:(id)annotation 
{
    //mv is the mapView
    [mv selectAnnotation:annotation animated:YES];

}

Sie können dann die nächste Anmerkung basierend auf aktuellen Standort bestimmen und die Anmerkungen in der Anordnung zur Verfügung zu Fuß.

[mv annotations];

Sobald die nächste Anmerkung berechnet wird, rufen:

[self openAnnotation:closestAnnotation];

Die mapView sollte automatisch bewegen Ihre Anmerkung in der Mitte des Anzeigebereichs zu platzieren.

Beantwortet am 26/02/2010 um 05:45
quelle vom benutzer

stimmen
1

In schnellen 3 ist dies aktualisiert:

func openAnnotation(annotation: MkAnnotation) {
_ = [mapView .selectAnnotation(annotation, animated: true)]
}

und kann mit jeder Anmerkung (dies öffnet die Anmerkung callout Ansicht und versucht, die Anmerkung auf der Karte zu zentrieren) aufgerufen werden

Zum Beispiel mit der zweiten Anmerkung in einer hypothetischen Liste der Anmerkungen.

openAnnotation(annotation: mapView.annotations[1])
Beantwortet am 23/05/2017 um 16:14
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more