Afficher une icône de chargement pendant le téléchargement d'une ressource réseau
-
03-07-2019 - |
Question
J'essaie d'afficher une icône de chargement pendant que mon application iPhone télécharge une ressource réseau, mais je ne vois pas comment la faire apparaître correctement.
J'ai cherché et trouvé des détails sur la classe UIActivityView
, mais l'exemple de code source disponible ne fonctionnait pas et la documentation était plutôt succincte.
Quelqu'un pourrait-il donner un exemple simple d'utilisation de cette classe?
La solution
En supposant que vous ayez un contrôleur de vue configuré et que vous souhaitiez y ajouter un UIActivityIndicator
, voici comment procéder:
(supposons que vous ayez une variable membre appelée indicateur
, que vous pourrez utiliser plus tard pour nettoyer)
Pour votre interface (fichier .h):
UIActivityIndicator *indicator;
Pour votre implémentation (fichier .m):
Démarrer l'animation
CGRect b = self.view.bounds;
indicator = [[UIActivityIndicator alloc] initWithActivityIndicatorStyle:
UIActivityIndicatorStyleWhite];
//center the indicator in the view
indicator.frame = CGRectMake((b.size.width - 20) / 2, (b.size.height - 20) / 2, 20, 20);
[self.view addSubview: indicator];
[indicator release];
[indicator startAnimating];
Arrêter l'animation
[indicator removeFromSuperview];
indicator = nil;
Autres conseils
La réponse de Ben est assez similaire à ce que je fais - votre hypothèse à propos du fil est probablement exacte. Utilisez-vous NSURLConnection
pour gérer votre téléchargement? Si oui, utilisez-vous la version synchrone ou asynchrone? S'il s'agit de la version synchrone et que vous démarrez et arrêtez simplement l'animation autour de l'appel synchrone, l'interface utilisateur ne se met pas à jour avant la fin de l'animation.