2010-07-05 5 views
0

Je sais que beaucoup de gens ont eu des problèmes similaires et certains les ont triés et d'autres pas. Fondamentalement, j'ai besoin d'un moyen de rafraîchir la carte, c'est-à-dire obtenir un rappel à mapViewDidFinishLoading. Si l'emplacement affiché a déjà été vu par l'utilisateur, il semble que la carte soit chargée à partir du cache et n'appelle pas mapViewDidFinishLoading, ce dont j'ai besoin car cela déclenche une partie de mon code de jeu. Est-ce que quelqu'un sait comment faire cela sur ios 3.1.2 et plus? [Quelque chose dans le style de [mapView reload] (si seulement c'était si simple).MKMapView recharger/rafraîchir sur 3.1.2 et vers le haut

Un grand merci

Jules

+0

Avez-vous trouvé une réponse à votre question? – mcphersonjr

Répondre

0

je suppose que le chargement de la carte est déclenchée par l'utilisateur en faisant glisser la carte pour que vous puissiez utiliser le Mapview: regionDidChangeAnimated: rappel et inclure votre code de jeu en elle.

+0

Merci pour l'aide, malheureusement c'est là que réside le problème. Le chargement des cartes est déclenché par un bouton connecté à un IBAction qui donne à la carte une région à afficher. La raison pour laquelle je dois utiliser le callback mapDidFinishLoading est parce que j'ai un timer qui ne peut démarrer que lorsque la map est complètement chargée. D'autres idées? Merci beaucoup Jules – Jules

+0

Ensuite, vous pouvez utiliser le mapViewWillStartLoadingMap: callback. Si mapViewDidFinishLoading n'est pas appelé, je suppose que l'on ne l'appelle pas non plus. Démarrez votre minuteur dans mapView: regionDidChangeAnimated, réinitialisez-le dans mapViewWillStartLoadingMap: et redémarrez-le dans mapViewDidFinishLoading: Est-ce une bonne solution de contournement? – Charter

+0

Bonjour, cela ne fonctionnera pas non plus car aucune des fonctions de délégation de cartes ne reçoit un rappel. Cela ne se produit que lorsque l'emplacement requis a déjà été chargé à un moment donné, ce que j'ai vraiment besoin de faire est soit de recharger la carte en quelque sorte ou de vider le cache en quelque sorte? Un grand merci encore Jules – Jules

0

Je ne sais pas si vous en avez toujours besoin, mais j'ai eu un problème similaire avec viewForOverlay n'étant pas appelé. En fait, il a finalement été appelé, mais trop tard pour ce dont j'avais besoin.

en utilisant ce qui suit à jour quand je avais besoin à -

[self.map setVisibleMapRect:myMapRect]; 
+0

Salut, j'ai essayé mais cela n'a pas aidé dans mon cas. En fin de compte, j'ai juste changé la façon dont ma logique de jeu fonctionnait, pas idéal mais ça marche maintenant. Salutations – Jules

+0

heureux que vous l'avez eu à travailler. – clarky

Questions connexes