MKMapView en setRegion: animated: niet bijwerken van de kaart visuals

stemmen
4

Groeten! Ik probeer te gebruiken MKMapView zonder Apple codevoorbeelden, maar er zijn een paar anderen die er van verschillende helderheid. (Ik weet het, Lees de vriendelijke handleiding. Ik heb dat gedaan, maar het is niet 100% duidelijk, dus geduld met mij op deze.)

Hier is de situatie. Ik heb een MKMapView object, waarbij I een reeks tiental toegevoegd MKPinAnnotation objecten. So far, so good. Alles is alloced / zinnig vrijgegeven en er schijnt niet om het even welke klachten van Instruments zijn.

Bij beginscherm, heb ik een MKCoordinateRegion voorwerp met het middelpunt op onze eerste pinlocatie en een (willekeurige) overspanning van 0,2 x 0,2. Ik bel dan:

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

Wauw! Dat werkte goed.

Ondertussen ... Ik heb ook een gesegmenteerde controle om te bewegen naar elke pinlocatie. Dus zoals ik door de lijst tikt, wordt de kaart bezielt om elke nieuwe pin locatie met een nieuw paar telefoontjes naar setRegion: animated: en regionThatFits: ... of althans dat is het idee.

Terwijl de kaart betekent reizen om de nieuwe pin locatie, is de kaart zelf niet onder te werken. In plaats daarvan zie ik mijn pin op een grijze / blanco-map achtergrond ... totdat ik de kaart in elke richting te duwen, maar een beetje. Vervolgens toont de kaart door middel van! (Als ik ben alleen, die zich binnen een korte afstand van de vorige pinlocatie, zal ik meestal zien welk deel van de kaart was al geladen.)

Ik vermoed dat ik iets doms doe je hier, maar ik ben niet in staat om erachter te komen wat er, in ieder geval niet van de MapKit docs geweest. Misschien Ik gebruik de verkeerde bellen? (Nou, ik moet de regio ten minste een keer, ja Moving dat betekent rond niet lijkt te wel helpen?.) Ik heb ook geprobeerd met behulp van setCenterCoordinate: animated: - zelfde probleem.

Ik ben op dit punt niets (no pun intended) in de veronderstelling. Gewoon proberen om mijn weg te vinden.

Clues verwelkomen / gewaardeerd!

UPDATE: Calling setRegion: animated: en regionThatFits: de eerste keer, gevolgd door setCenterCoordinate: animated: terwijl het doorkruisen van de lijst, heeft geen effect. Interessante bevinding hoewel: Als ik wijzigen geanimeerd om NO in beide gevallen de kaartupdates !!! Alleen wanneer het is ingesteld op YES. (Wha gebeuren ?! is geanimeerd:? Gebroken Dat kan niet ... ???)

De vraag is gesteld op 08/07/2009 om 01:14
bron van user
In andere talen...                            


4 antwoorden

stemmen
6

Het blijkt dat de kaartupdate werkt niet bij gebruik van de simulator. Wanneer ik probeer setCenterCoordinate: geanimeerd: op het apparaat, ik doe krijg de kaartupdate eronder.

Bottom line: Ik was vertrouwen in de simulator om het apparaat in termen van kaart updating gedrag aan te passen. Helaas, ik was vergist! Les geleerd. "Laat dit niet gebeuren." :)

antwoordde op 28/07/2009 om 13:14
bron van user

stemmen
2

Je moet de beroepen setRegion:animated:oproep in de rode draad context. Doe gewoon iets als:

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

}

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

en het zou moeten werken in elk geval (animated of niet), met de kaart onderaan bijgewerkt.

antwoordde op 27/07/2009 om 13:11
bron van user

stemmen
0

Ook al is dit een oud onderwerp dat ik dacht dat ik de ring in met mijn ervaring. Het lijkt erop dat de kaart animatieprogramma alleen niet op apparaten met iOS 3.1.x en de simulator loopt 3.1.x. Mijn dev iPod touch met 3.1.3 niet in slaagt om te zoomen of animation is.

antwoordde op 07/10/2010 om 15:40
bron van user

stemmen
0

Hum vreemd. De kaartupdates op mijn Mac, zelfs in de simulator. Misschien een netwerk instelling (proxy of wat dan ook) dat de kaart widget zou voorkomen dat de tegels op de simulator te downloaden?

antwoordde op 31/07/2009 om 09:17
bron van user

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