Come aprire richiamare MKAnnotationView di programmazione? (IPhone, MapKit)

voti
26

Voglio aprire il richiamo di una MKPinAnnotationViewprogrammazione. Ad esempio, io cadere 10 pin sulla mappa, e vuole aprire quello più vicino a me. Come potrei fare per fare questo?

Apple ha specificato il parametro 'selezionato' per MKAnnotationView's, ma scoraggia l'impostazione direttamente (questo non funziona, provato).

Per il resto MKAnnotationViewha solo un setHighlighted ( stessa storia ), e può ShowCalloutmetodo ..

Eventuali suggerimenti se questo è possibile a tutti?

È pubblicato 03/02/2010 alle 18:16
fonte dall'utente
In altre lingue...                            


2 risposte

voti
77

Nella vostra mapViewController creare un metodo di azione:

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

}

È quindi possibile determinare l'annotazione più vicino in base alla posizione attuale e camminare per le annotazioni disponibili nella matrice.

[mv annotations];

Una volta che l'annotazione più vicino è calcolato, chiamare:

[self openAnnotation:closestAnnotation];

Il MapView deve scorrere automaticamente di inserire il vostro annotazioni al centro dell'area di visualizzazione.

Risposto il 26/02/2010 a 05:45
fonte dall'utente

voti
1

In rapida 3 questo viene aggiornato a:

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

e può essere chiamato con qualsiasi annotazione (questo si aprirà la vista di dettaglio di annotazione e tentare di centrare l'annotazione sulla mappa)

Ad esempio, utilizzando il secondo di annotazione in un ipotetico elenco di annotazioni.

openAnnotation(annotation: mapView.annotations[1])
Risposto il 23/05/2017 a 16:14
fonte dall'utente

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