Répétez une animation un nombre variable de fois
Je me demandais comment je peux définir une animation de répéter. Le nombre de répétitions doit être déterminée par une variable. Dans le code suivant, la variable int newPage
doit déterminer la façon dont souvent l'animation est répétée.
J'ai essayé ceci, mais l'animation (qui emploie un bloc d'animation) n'a été effectuée qu'une fois:
for (int temp = 1; temp <= newPage; temp++) {
[self animatePage];
}
Si j'ai le code suivant, il fonctionne comme je le veux, mais c'est codé en dur (c'est à dire l'animation sera répété deux fois) et je ne vois pas un moyen pour changer le numéro de la façon dont souvent cette animation est exécutée dans le code et selon ma variable newPage:
[UIView animateWithDuration:0
delay:0.1
options:UIViewAnimationOptionCurveEaseIn
animations:^{[self animatePage];}
completion:^(BOOL finished){[self animatePage];}];
Je serais très reconnaissant pour obtenir des suggestions sur la façon de répéter la même animation, sans avoir à coder en dur le nombre de fois que je veux cette animation se répéter.
EDIT:
J'ai essayé de mettre en œuvre le code suivant, mais seulement une animation sera effectivement réalisée:
[UIView animateWithDuration:0
delay:1
options:UIViewAnimationOptionCurveEaseIn
animations:^{
[UIView setAnimationRepeatCount:2];
[self animatePage];
}
completion:nil];
source d'informationauteur n.evermind
Vous devez vous connecter pour publier un commentaire.
Eu le même problème - vous avez été absent un'UIViewAnimationOptionRepeat'
Cela devrait fonctionner:
A fait le tour pour moi.
Avez-vous essayez de définir la repeatCount?
+ (void)setAnimationRepeatCount:(float)repeatCount
J'ai essayé le bloc de code suivant, et il a certainement répète 2x pour moi (l était une UITextView qui a été multipliée par 2 X dir et 3X en Y dir):
la raison pour laquelle vous ne coûtent pas voir, mais une animation est que, en raison du fait que vous appelez l'animation d'une boucle dans le même runloop, resuting dans le dernier appel gagnant (une animation)
au lieu de l'appeler
[self animatePage]
essayez d'appelercela permettra de créer vos appels sur des threads séparés.
vous pouvez avoir besoin de jouer avec l'intervalle de délai