2009-04-19 6 views
2

J'utilise UIImageView pour animer un tas d'images. Je sais que je peux changer la vitesse en modifiant animationDuration, mais cela ne semble pas prendre effet tant que l'animation n'est pas redémarrée. Mon problème est que de plus je ne veux pas vraiment redémarrer l'animation car cela me limite à ne pouvoir changer la vitesse qu'une fois par cycle, il ne semble pas non plus y avoir de moyen de savoir quelle image est actuellement en cours d'affichage et je devrais donc compter sur une minuterie pour "deviner" lequel il est.Modification de la vitesse de l'animation UIImageView

Donc, ma question est de savoir s'il existe un moyen de changer la vitesse sans redémarrer l'animation et si ce n'est pas possible d'éviter le problème susmentionné? Je ne suis pas trop enthousiaste à l'idée d'écrire ma propre classe d'animation, mais je risque de devoir le faire s'il n'y a pas de meilleure solution.

Répondre

0

Je ne sais pas si cela vaut aux UIImageView superclasse, mais UIView classe a la propriété suivante, par défaut NO:

setAnimationBeginsFromCurrentState:(BOOL)fromCurrentState 

lors d'un changement de YES et d'appeler la méthode commitAnimations l'appel après beginAnimations:context: commencera juste au point où l'animation a été arrêtée auparavant.

+0

Je pense que ce qu'il demande, c'est la capacité de UIImageViews à faire défiler un ensemble d'images comme une «animation», pas vos effets Core-Animation traditionnels. –

Questions connexes