UIView animateWithDuration:délai: travail bizarre
J'ai rencontrer un problème étrange avec l'iPhone d'animation des blocs.
Ce code:
[UIView animateWithDuration:2 delay: 0 options: 0 animations:
^(void) { [controller setBackgroundColor: [UIColor blueColor]]; }
completion: nil];
[UIView animateWithDuration:2 delay: 2 options: 0 animations:
^(void) { [controller setBackgroundColor: [UIColor redColor]]; }
completion: nil];
Instantanément l'arrière-plan est rouge, sans passer le bleu de l'état.
La même chose, MÊME pour ce code:
[UIView animateWithDuration:2 delay: 0 options: 0 animations:
^(void) { [controller setBackgroundColor: [UIColor blueColor]]; }
completion:
^(BOOL wrwg) {
[UIView animateWithDuration:2 delay: 2 options: 0 animations:
^(void) { [controller setBackgroundColor: [UIColor redColor]]; }
completion: nil];
}];
Qui est, lorsque j'essaie d'exécuter la deuxième animation APRÈS la première a fini.
Quel est le problème?
- Ce type d'objet est le contrôleur? Une UIView, UILabel, d'autres?
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème. Faire shure ce contrôleur est de type UIView sinon le bloc d'animation est interprété comme "pas d'animation pour l'exécution" et donc ignorée et l'animation suivante est rendu.
Aussi un coup d'oeil à ce post où j'ai posé la même question (avec la solution par moi):
http://www.iphonedevsdk.com/forum/iphone-sdk-development/64451-animation-one-after-another.html#post265531
Propriété
backgroundColor
est PAS d'animation dans UIView. Au lieu de cela, utiliserbackgroundColor
propriété de l'affichage de la couche:P. S. Comme il a été indiqué dans les messages précédents, assurez-vous que votre
controller
est héritée deUIView
. Si elle est héritée deUIViewController
, utilisezcontroller.view
à la place.Je viens d'avoir ce problème, et j'ai souvent l'avoir. Il y a deux causes, bien que l'on est quelque chose que je n'ai pas encore tester.
Causer à quelqu'un, j'ai oublié de brancher l'interface builder pour la vue animée, donc le bloc dit "Animer sur le néant? Il n'y a rien à faire, donc je vais passer à la réalisation bloc!"
L'autre cause, il y a quelque chose à faire, mais ce n'est pas un animables propriété (Caché), et je serais prêt à parier que la réalisation d'un bloc est appelé dès que les variables dans l'animation de match de leur "pour" ou "fin" de l'état. C'est juste une théorie, mais je parie que c'est un thread qui s'exécute à un certain rythme avec:
si (currentValueOfProperty = finalValue) doCompletion(). (pardon pour le pseudo-code).
Quelqu'un devrait probablement tester ça, si