Jak otevřít zavolat MKAnnotationView programově? (IPhone, MapKit)

hlasů
26

Chci otevřít popisek Aby byl MKPinAnnotationViewprogramově. Například jsem kapku 10 kolíky na mapě, a chtějí otevřít ten mi nejbližší. Jak bych mohl jít asi dělá?

Apple již specifikoval ‚vybraný‘ parametr MKAnnotationView's, ale odrazuje je nastavení přímo (to nefunguje, to zkusil).

Pro zbytek MKAnnotationViewmá pouze setHighlighted ( stejný příběh ) a může ShowCalloutmetodu ..

Jakékoli narážky, pokud je to vůbec možné?

Položena 03/02/2010 v 18:16
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
77

Ve vašem mapViewController vytvořit metodu akce:

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

}

Poté můžete určit nejbližší anotaci na základě aktuální polohy a pěší anotace k dispozici v poli.

[mv annotations];

Jakmile je nejblíže anotace vypočítá, volejte:

[self openAnnotation:closestAnnotation];

MapView by měl posouvat automaticky umístit své poznámky ve středu zobrazovací plochy.

Odpovězeno 26/02/2010 v 05:45
zdroj uživatelem

hlasů
1

V prudkých 3 je tato změněna na:

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

a mohou být vyvolány pomocí libovolného anotaci (to se otevře popisku pohledu anotace a pokusit se střed anotaci na mapě)

Například pomocí druhé anotace na hypotetickém seznamu anotací.

openAnnotation(annotation: mapView.annotations[1])
Odpovězeno 23/05/2017 v 16:14
zdroj uživatelem

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