Grüße! Ich versuche zu verwenden MKMapView ohne Apple-Code-Beispiele, obwohl es ein paar andere mit unterschiedlicher Klarheit gibt. (Ich weiß, "Lies das freundliche Handbuch". Ich habe das getan, aber es ist nicht 100% klar, so bitte mit mir auf dieser einen.)
Die Situation ist wie folgt. Ich habe eine MKMapView Objekt, in das ich eine Reihe von etwa zehn MKPinAnnotation Objekte. So weit, so gut. Alles wird vernünftig zugewiesen/freigegeben und es scheint keine Beschwerden von Instruments zu geben.
Bei der ersten Anzeige habe ich eine MKKoordinatenRegion Objekt mit dem Mittelpunkt an unserer ersten Stiftposition und einer (willkürlichen) Spanne von 0,2 x 0,2. Ich rufe dann auf:
[mapView setRegion:region animated:YES];
[mapView regionThatFits:region];
Wahnsinn! Das hat gut funktioniert.
Inzwischen ... Ich habe auch eine segmentierte Steuerung für die Bewegung zu jedem Pin Position zu ermöglichen. Also, wie ich durch die Liste tippen, animiert die Karte zu jedem neuen Pin Position mit einem neuen Paar von Aufrufen zu setRegion:animiert: y regionThatFits: ... oder zumindest ist das die Idee.
Die Karte "reist" zwar zum neuen Standort der Stecknadel, aber die Karte selbst wird nicht darunter aktualisiert. Stattdessen sehe ich meine Stecknadel auf einem grauen/leeren Kartenhintergrund ... bis Ich stoße die Karte in eine beliebige Richtung, wenn auch nur leicht. Dann kommt die Karte durch! (Wenn ich mich nur in einer kurzen Entfernung von der vorherigen Position der Stecknadel bewege, sehe ich normalerweise den Teil der Karte, der bereits geladen war).
Ich vermute, ich tue etwas dumm hier, aber ich habe nicht in der Lage gewesen, herauszufinden, was, zumindest nicht von der MapKit docs. Vielleicht verwende ich die falschen Aufrufe? (Nun, ich muss die Region mindestens einmal festlegen, ja? Verschieben, dass um scheint nicht zu helfen, obwohl.) Ich habe auch versucht, mit setCenterCoordinate:animiert: - dasselbe Problem.
Ich gehe zu diesem Zeitpunkt von nichts aus (kein Wortspiel beabsichtigt). Ich versuche nur, meinen Weg zu finden.
Hinweise sind willkommen und erwünscht!
UPDATE: Anrufe setRegion:animiert: y regionThatFits: das erste Mal, gefolgt von setCenterCoordinate:animiert: während des Durchlaufs der Liste, hat keine Wirkung. Interessante Erkenntnis: Wenn ich in beiden Fällen animiert auf NEIN stelle, wird die Karte aktualisiert!!! Nur wenn sie auf YES gesetzt ist. (Was ist passiert? Ist animated: kaputt? Das kann nicht sein ... ???)