Afficher un UIActivityIndicatorView

Pour indiquer à l’utilisateur qu’une appli iPhone est en train de travailler en tâche de fond, il est possible d’afficher un UIActivityIndicatorView.

Apple préconise d’afficher ce “signal” seul, sans couleur de fond. Le problème c’est qu’il est plutôt transparent et donc peut visible sur un fond clair. Il est donc possible de l’afficher dans une UIAlertView qui fournit un fond foncé pour le rendre plus visible.

Un peu de Google m’a permis de trouver des tuto pour ces 2 solutions. Ma tâche de fond est exécuté par une thread et ces méthodes fonctionnent avec l’appel à la thread.

Dans ce cas, j’ai appelé [self initSpinner] dans viewDidLoad comme l’indique le tutoriel.
L’appel à  [NSThread detachNewThreadSelector: @selector(spinBegin) toTarget:selfwithObject:nil]; est fait au début de la fonction de tâche de fond exécutée par ma thread.
L’appel à  [NSThread detachNewThreadSelector: @selector(spinEnd) toTarget:selfwithObject:nil]; est fait à la fin de la fonction de tâche de fond exécutée par ma thread.

  • afficher un UIActivityIndicatorView dans une UIAlertView : sur ce billet

Dans ce cas, on déclare un objet ActivityAlertView comme propriété de la classe qui va l’utiliser.
Au début de viewDidLoad, j’alloue cet objet et j’appelle “show” pour qu’il apparaisse.
A la fin de la fonction de tâche de fond exécutée par ma thread, j’appelle [activityAlert close]; pour masquer l’UIAlertView.

This entry was posted in iPhone, mac, tutoriels and tagged , , . Bookmark the permalink.