48 votes

Comment attendre en Objective-C et Swift

Je veux changer mon UILabel après 2 secondes.

J'ai essayé de régler mon UILabel Le texte de l'auteur à "Un texte" et utiliser sleep(2) et enfin changer le texte en "Un autre texte" .

Mais sleep(2) ne fait que geler l'application et "Un autre texte" est réglé sans afficher "Un texte" pendant 2 secondes.

Comment puis-je afficher "Un texte" pendant 2 secondes, puis afficher "Un autre texte" ?

0 votes

2voto

Dave Points 275

Cela est dû au fait que la vue n'est pas mise à jour avant la fin de la boucle d'exécution. Au lieu d'utiliser des dodos, essayez d'utiliser NSTimer pour définir un moment spécifique pour la mise à jour de la vue.

2voto

Pepe Points 3506

Vous devez utiliser une minuterie. L'utilisation de la veille arrêtera tout votre programme. Vérifiez NSTimer

0voto

JateXu Points 1

La méthode de suivi est bonne.

Vous pouvez remplacer votre

sleep(1) ;

avec

dispatch_semaphore_t semaphore = dispatch_semaphore_create(0) ; dispatch_semaphore_wait(semaphore, dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC)) ;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X