MKMapView și setRegion: animate: nu actualizarea vizuale ale hărții

voturi
4

Salutari! Sunt încercarea de a utiliza MKMapView fără mostre de cod Apple, deși există alte câteva acolo de diferite claritate. (Știu, „Citiți manualul de prietenos.“ Am făcut asta , dar nu este 100% clar, așa că vă rugăm să poarte cu mine pe asta.)

Iată situația. Am un MKMapView obiect, în care am adăugat un set de aproximativ zece MKPinAnnotation obiecte. Până acum, bine. Totul este alloced / eliberat sanely și nu pare a fi nici o plângere din instrumentele.

După afișarea inițială, am înființat un MKCoordinateRegion obiect cu CENTERPOINT la prima noastră locație pin, și un interval (arbitrar) de 0,2 x 0,2. Atunci eu numesc:

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

Wow! Asta a lucrat bine.

Între timp ... Am , de asemenea , un control segmentat pentru a permite deplasarea fiecărei locații PIN. Așa cum am robinet prin lista, harta animă pentru fiecare locație nouă pini cu o noua pereche de apeluri la setRegion: animat: și regionThatFits: ... sau cel puțin asta e ideea.

În timp ce harta face „călătorie“ pentru noul cod PIN locație, harta în sine nu se actualizează dedesubt. În schimb, văd PIN - ul meu pe un gri / gol-harta de fundal ... până când am ghiont harta în orice direcție, oricât de puțin. Apoi , pe hartă prin! (Dacă sunt doar se deplasează la o distanță scurtă de locația precedent PIN - ul, voi vedea , de obicei , indiferent de o parte a hărții a fost deja încărcată.)

Bănuiesc că fac ceva prost aici, dar nu am fost în măsură să dau seama ce, cel puțin nu din docs MapKit. Poate că eu sunt , folosind apelurile greșit? (Ei bine, eu am nevoie pentru a seta regiunea cel puțin o dată, da Mutarea că în jurul valorii nu pare să ajute , deși?.) Am încercat , de asemenea , folosind setCenterCoordinate: animat: - aceeași problemă.

Sunt presupunând că nimic în acest moment (nr joc de cuvinte destinate). Doar încearcă să găsească drumul meu.

Indiciile bun venit / apreciat!

UPDATE: Apelarea setRegion: animat: și regionThatFits: prima dată, urmat de setCenterCoordinate: animat: în timp ce traversează lista, nu are nici un efect. Constatare Interesant , deși: Dacă schimb animată NO , în ambele cazuri, actualizările harta !!! Numai atunci când este setat la YES. (Wha se întâmplă ?! este animat:? Fărâmituri nu poate fi ... ???)

Întrebat 08/07/2009 la 01:14
sursa de către utilizator
În alte limbi...                            


4 răspunsuri

voturi
6

Se pare că actualizarea harta nu funcționează atunci când se utilizează Simulatorul. Când încerc setCenterCoordinate: animat: pe dispozitiv, am făcut obține actualizarea harta de dedesubt.

Linia de fund: Am fost încredere simulator pentru a se potrivi dispozitivului în ceea ce privește comportamentul de actualizare hartă. Din păcate, am greșit! Lecții învățate. „Nu lăsa să se întâmple cu tine.“ :)

Publicat 28/07/2009 la 13:14
sursa de către utilizator

voturi
2

Ai nevoie pentru a invoca setRegion:animated:apelul în contextul firului principal. Doar face ceva de genul:

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

}

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

și ar trebui să funcționeze în orice caz (animate sau nu), cu harta actualizată dedesubt.

Publicat 27/07/2009 la 13:11
sursa de către utilizator

voturi
0

Chiar dacă acest lucru este un subiect vechi m-am gândit suna cu experienta mea. Se pare că animația hartă nu numai pe dispozitivele iOS 3.1.x și 3.1.x. simulator de funcționare My dev iPod touch cu zoom 3.1.3 nu în cazul în care animația este activată.

Publicat 07/10/2010 la 15:40
sursa de către utilizator

voturi
0

Hum ciudat. Actualizările harta de pe Mac-ul meu, chiar și în simulator. Poate o setare de retea (proxy sau orice altceva), care ar împiedica widget-ul hartă pentru a descărca piesele de pe simulator?

Publicat 31/07/2009 la 09:17
sursa de către utilizator

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