Hvordan åpne ringe ut MKAnnotationView programmatisk? (IPhone, MapKit)

stemmer
26

Jeg ønsker å åpne opp callout for en MKPinAnnotationViewprogrammatisk. F.eks jeg slippe 10 pins på kartet, og ønsker å åpne opp en nærmest meg. Hvordan skulle jeg gå om du gjør dette?

Apple har spesifisert 'valgt' parameter for MKAnnotationView's, men fraråder å sette den direkte (dette fungerer ikke, har prøvd det).

For resten MKAnnotationViewbare har en setHighlighted ( samme historien ), og kan ShowCalloutmetoden ..

Noen hint om dette er mulig i det hele tatt?

Publisert på 03/02/2010 klokken 17:16
kilden bruker
På andre språk...                            


2 svar

stemmer
77

I mapViewController skape en handling metode:

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

}

Du kan deretter bestemme nærmeste merknaden basert på gjeldende sted og gå merknadene som er tilgjengelige i rekken.

[mv annotations];

Når det nærmeste merknaden er beregnet ring:

[self openAnnotation:closestAnnotation];

Den mapView skal bla automatisk å plassere merknaden i midten av visningsområdet.

Svarte 26/02/2010 kl. 04:45
kilden bruker

stemmer
1

I rask 3 dette er oppdatert til:

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

og kan kalles bruke noen merknad (dette vil åpne kommentarbildeforklaring utsikt og forsøke å sentrere merknaden på kartet)

For eksempel ved å bruke andre kommentarene i en hypotetisk liste med merknader.

openAnnotation(annotation: mapView.annotations[1])
Svarte 23/05/2017 kl. 16:14
kilden bruker

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