MKMapView og setRegion: animerte: ikke oppdatere kart visuelle

stemmer
4

Hilsener! Jeg prøver å bruke MKMapView uten Apple kodeeksempler, selv om det er noen andre der ute med varierende klarhet. (Jeg vet, Les den vennlige manualen. Jeg har gjort det, men det er ikke 100% klar, så kan du bære med meg på dette.)

Her er situasjonen. Jeg har en MKMapView gjenstand, karakterisert ved at jeg har lagt et sett av ti MKPinAnnotation stedene. Så langt så bra. Alt er alloced / utgitt sanely og det synes ikke å være noen klager fra Instruments.

Ved førstegangs skjerm, jeg sette opp en MKCoordinateRegion objekt med senterpunktet ved vår første tapp plassering, og en (vilkårlig) spenn på 0,2 x 0,2. Jeg så ring:

[mapView setRegion:region animated:YES];
[mapView regionThatFits:region];

Wow! Som fungerte bra.

I mellomtiden ... Jeg har også en segmentert kontroll for å tillate bevegelse til hver pinne sted. Så som jeg trykke gjennom listen, kartet animeres til hver ny pinne sted med et par nye samtaler til setRegion: animerte: og regionThatFits: ... eller i det minste det er tanken.

Mens kartet betyr reise til den nye pin plassering, ikke selve kartet ikke oppdatere under. I stedet ser jeg min pin på en grå / blank-kartet bakgrunn ... før jeg dytte kartet i alle retninger, men litt. Da Kartet viser gjennom! (Hvis jeg bare flytte innen kort avstand av forrige pin plassering, vil jeg vanligvis ser den delen av kartet ble allerede lastet inn.)

Jeg mistenker at jeg gjør noe dumt her, men jeg har ikke vært i stand til å finne ut hva, i hvert fall ikke fra MapKit docs. Kanskje jeg bruker feil samtaler? (Vel, jeg trenger å sette regionen minst en gang, ja Flytte at rundt ikke synes å hjelpe selv?). Jeg har også prøvd å bruke setCenterCoordinate: animert: - samme problem.

Jeg antar ingenting på dette punktet (no pun intended). Prøver bare å finne min måte.

Ledetråder velkommen / verdsatt!

OPPDATERING: Ringe setRegion: animerte: og regionThatFits: første gang, etterfulgt av setCenterCoordinate: animerte: mens traversering listen, har ingen effekt. Interessant funn om: hvis jeg endrer animert til NO i begge tilfeller, kartoppdateringer !!! Bare når det er satt til YES. (Wha skje ?! er animert? Brutt Det kan ikke være ... ???)

Publisert på 08/07/2009 klokken 00:14
kilden bruker
På andre språk...                            


4 svar

stemmer
6

Det viser seg at kartoppdateringen ikke fungerer når du bruker SIMULATOR. Når jeg prøver setCenterCoordinate: animert: på enheten, jeg gjør får kartoppdatering under.

Ergo: Jeg var klarerer simulatoren for å matche enheten i form av kart oppdatering atferd. Akk, jeg tok feil! Lært en lekse. "Ikke la dette skje med deg." :)

Svarte 28/07/2009 kl. 12:14
kilden bruker

stemmer
2

Du må påkalle setRegion:animated:samtalen i hovedtråden sammenheng. Bare gjør noe sånt som:

....
[self performSelectorOnMainThread:@selector(updateMyMap) withObject:nil waitUntilDone:NO];

}

-(void) updateMyMap {
    [myMap setRegion:myRegion animated:YES];    
}

og det skal fungere i alle fall (animert eller ikke), med kartet oppdateres under.

Svarte 27/07/2009 kl. 12:11
kilden bruker

stemmer
0

Selv om dette er et gammelt tema jeg tenkte jeg skulle ringe inn med min erfaring. Det virker kartet animasjon mislykkes bare på enheter som kjører iOS 3.1.x og simulatoren kjører 3.1.x. Min dev iPod touch med 3.1.3 unnlater å zoome hvis animasjon er på.

Svarte 07/10/2010 kl. 14:40
kilden bruker

stemmer
0

Hum rart. De kartoppdateringer på min Mac selv i simulatoren. Kanskje en nettverksinnstillinger (proxy eller hva) som ville hindre kartet widget for å laste ned fliser på simulator?

Svarte 31/07/2009 kl. 08:17
kilden bruker

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