2010-01-12 7 views
2

Est-ce que quelqu'un sait ce qui déclenche l'animation en marbre bleu? Je sais que cela arrive quand l'emplacement est mis à jour mais comment puis-je déclencher cet événement avec tout ce qui est dans cette propriété. J'ai une application que je voudrais montrer l'emplacement de l'utilisateur quand la carte apparaît, mais efface alors la carte de toutes les annotations (y compris l'emplacement d'utilisateur) quand la carte disparaît. Cela fonctionne bien. Le problème vient du fait que lorsque j'essaie de revenir sur la carte après avoir supprimé l'emplacement de l'utilisateur, le marbre bleu ne revient pas. Quelqu'un sait-il comment relancer cette animation?Emplacement de l'utilisateur Blue marble drop

merci d'avance.

Répondre

2

Si vous définissez votre MKMapView pour afficher l'emplacement de l'utilisateur en définissant sa propriété showsUserLocation sur OUI, la carte affichera automatiquement l'emplacement de l'utilisateur sauf si ses coordonnées sont en dehors de la carte. Vous pouvez vérifier cela en inspectant la propriété userLocationVisible.

Maintenant, si vous supprimez l'emplacement de l'utilisateur (la propriété userLocation qui est une annotation), la carte ne peut pas afficher l'emplacement de l'utilisateur même si showsUserLocation est défini sur oui. Restaurez simplement le userLocation à nouveau en le mettant à jour en utilisant le framework CoreLocation et il apparaîtra automatiquement sur la carte.

EDIT: Pour déclencher l'animation, mettre à jour l'emplacement de l'utilisateur, la configuration à nouveau la région à afficher (peut être le centre et/ou la durée ont changé), puis appelez

[map setRegion:newRegion animated:YES]; 

Si la région n » ai pas t changer simplement le réutiliser.

+0

J'ai essayé cela plus tôt en utilisant l'instruction [locationManager startUpdatingLocation]. il a mis à jour l'emplacement, mais l'animation n'a jamais surgi. – Makinitez21

+0

Savez-vous exactement ce qui déclenche cet événement? la mise à jour de l'emplacement a évidemment quelque chose à voir avec cela parce que sinon, il ne le ferait pas la première fois. Mais quelque chose d'autre joue un rôle. – Makinitez21

+0

J'ai mis à jour la réponse. C'est ce que je fais et ça marche pour moi. –