Je sais qu'il y a une sorte de mécanisme de regroupement d'animation dans l'animation de base. Disons donc que j'ai deux CABasicAnimation firstAnimation
et secondAnimation
. Comment pourrais-je les regrouper et comment pourrais-je lancer le groupe pour commencer à animer?Comment grouper deux animations CABasicAnimation et les lancer au même moment?
4
A
Répondre
6
Vous devez utiliser la classe CAAnimationGroup. Créez un tableau contenant les animations souhaitées et définissez la propriété animations
du groupe Animation sur ce tableau. CAAnimationGroup est une sous-classe de CAAnimation, vous pouvez donc l'ajouter à une couche en utilisant [layer addAnimation:forKey:]
comme vous le feriez pour une animation normale. Une fois ajoutées à une couche, toutes les animations d'un groupe s'exécutent simultanément. Je suggère de lire le CAAnimationGroup Reference en premier. Il y a un certain nombre de détails de mise en œuvre qui méritent d'être compris avant de l'utiliser. Par exemple:
- La propriété
delegate
des animations individuelles est ignorée. - La propriété
removeOnCompletion
des animations individuelles est ignorée. - AnimationGroup possède ses propres propriétés
delegate
etremoveOnCompletion
. - Les animations ne sont pas mises à l'échelle du groupe, donc si une animation individuelle a une durée plus longue que celle de l'objet groupe, elle sera interrompue à la fin de la durée du groupe.
- La propriété
animations
de CAAnimationGroup est copiée et non conservée.