MKMapView et setRegion:animation: ne pas mettre à jour les visuels de la carte
Salutations! Je suis d'essayer d'utiliser MKMapView sans Apple exemples de code, bien qu'il existe quelques autres de différentes clarté. (Je sais, "Lire l'amicale manuel". Je l'ai fait mais il n'est pas 100% clair, de sorte s'il vous plaît garder avec moi sur ce point.)
Voici la situation. J'ai un MKMapView objet, dans lequel j'ai ajouté un ensemble d'environ dix MKPinAnnotation objets. Pour l'instant, donc bon. Tout est alloced/publié sainement, et il ne semble pas être toutes les plaintes des Instruments.
Lors de l'affichage initial, j'ai mis en place un MKCoordinateRegion objet avec le point central à notre premier axe de localisation, et un (arbitraire) plage de 0,2 x 0,2. Je puis appeler:
[mapView setRegion:region animated:YES];
[mapView regionThatFits:region];
Wow! Qui a bien fonctionné.
Pendant ce temps ... j'ai aussi une commande segmentée pour permettre le mouvement de chaque broche emplacement. Donc, comme je le robinet par le biais de la liste, la carte s'anime à chaque nouveau code pin emplacement avec une nouvelle paire d'appels à setRegion:animation: et regionThatFits: ... ou du moins c'est l'idée.
Alors que la carte ne "voyage" pour le nouveau code pin de l'emplacement, de la carte elle-même n'est pas mise à jour en dessous. Au lieu de cela, je vois mon code pin sur un gris/blanc-fond de carte ... jusqu'à je pousser la carte dans n'importe quelle direction, même très légèrement. Ensuite, la carte montre à travers! (Si je suis le seul à en se déplaçant à l'intérieur d'une courte distance de la précédente pin emplacement, je vais souvent voir ce que la partie de la carte a déjà été chargé.)
Je pense que je suis en train de faire quelque chose de stupide, mais je n'ai pas été capable de comprendre ce qui, au moins de la MapKit docs. Je suis peut-être en utilisant le mauvais appels? (Eh bien, j'ai besoin de mettre la région au moins une fois, oui? En la déplaçant autour ne semble pas aider.) J'ai également essayé d'utiliser setCenterCoordinate:animation: - même problème.
Je suis en supposant que rien en ce point (aucun calembour prévu). Juste essayer de trouver mon chemin.
Indices de bienvenue/apprécié!
Mise à JOUR: l'Appel de setRegion:animation: et regionThatFits: la première fois, suivie par setCenterCoordinate:animation: tout en parcourant la liste, n'a pas d'effet. Conclusion intéressante: Si je change l'animé, PAS dans les deux cas, les mises à jour de carte!!! Seulement quand il est réglé à OUI. (Wha arriver?! Est animé: cassé? Qui ne peut pas être ... ???)
OriginalL'auteur Joe D'Andrea | 2009-07-08
Vous devez vous connecter pour publier un commentaire.
Il s'avère que la mise à jour de carte ne fonctionne pas lors de l'utilisation du SIMULATEUR. Lorsque j'essaie setCenterCoordinate:animation: sur l'appareil, je ne obtenir la mise à jour de carte en dessous.
Ligne du bas: j'étais confiant le simulateur pour le match de l'appareil en termes de carte de mise à jour de comportement. Hélas, je me suis trompé! Leçon apprise. "Ne laissez pas cela vous arriver." 🙂
OriginalL'auteur Joe D'Andrea
Vous devez invoquer le
setRegion:animated:
appel dans le thread Principal contexte.Juste faire quelque chose comme:
et il devrait fonctionner dans tous les cas (animées ou non), avec la carte mise à jour en dessous.
Ont le même problème sur 3.1. Cette approche ne m'aide pas. Mon sujet est là: stackoverflow.com/questions/1190270/...
OriginalL'auteur yonel
Hum étrange. Les mises à jour de carte sur mon Mac, même dans le simulateur. Peut-être un paramètre de réseau (proxy ou autre) qui permettrait de prévenir la carte widget pour télécharger les tuiles sur le simulateur ?
OriginalL'auteur yonel
Même si c'est un vieux sujet, je pensais bague en mon expérience. Il semble que la carte de l'animation échoue uniquement sur les appareils fonctionnant sous iOS 3.1.x et le simulateur de course 3.1.x. Mon dev iPod touch avec 3.1.3 ne parvient pas à zoomer si l'animation est sur.
OriginalL'auteur AWinter