2010-04-09 4 views
0

Je modifie des éléments de l'interface utilisateur. Il n'y a pas de thread (supplémentaire) ou asynchrone. appels. Cependant, je veux donner un effet de ralenti, alors attendez un moment précis à chaque étape d'une boucle for. Comment puis-je y parvenir sans bloquer l'interface utilisateur? En particulier, je déplace un bouton dans une boucle for. Je peux mettrePatientez pendant la modification de l'interface utilisateur de l'iPhone

[NSThread sleepForTimeInterval:5.0]; 

dans la boucle mais la position du bouton n'est pas reflétée sur l'interface utilisateur jusqu'à la fin de la boucle; Je pense que je devrais appeler quelque chose pour «redessiner» le bouton à chaque fois pour l'itération.

Des idées?

Répondre

3

Mieux vaut utiliser Core Animation si les modifications que vous effectuez concernent des propriétés animables. Par exemple, si vous souhaitez modifier lentement le cadre d'une vue, vous pouvez faire quelque chose comme:

[UIView beginAnimations:@""]; 
[UIView setAnimationDuration:5.0]; 
view.frame = CGRectMake(0, 0, 320, 460); 
[UIView commitAnimations]; 
Questions connexes