问题
I know there is some kind of animation grouping mechanism in core animation. So lets say I have two CABasicAnimation firstAnimation and secondAnimation. How would I group these and how would I kick off the group to start animating?
回答1:
You'll want to use the CAAnimationGroup class. Create an array containing the animations you want, and set the AnimationGroup's animations property to that array. CAAnimationGroup is a subclass of CAAnimation, so you can add it to a layer using [layer addAnimation:forKey:] like you would a regular animation. Once added to a layer, all animations in a group execute concurrently.
I would suggest reading the CAAnimationGroup Reference first. There are a number of implementation details worth understanding before you use it. For example:
- The
delegateproperty of individual animations is ignored. - The
removeOnCompletionproperty of individual animations is ignored. - The AnimationGroup has its own
delegateandremoveOnCompletionproperties. - Animations aren't time-scaled to the group, so if an individual animation has a duration longer than that of the group object, it will be interrupted at the end of the group's duration.
- The
animationsproperty of CAAnimationGroup is copied, not retained.
来源:https://stackoverflow.com/questions/2892883/how-to-group-two-cabasicanimation-animations-and-kick-them-off-at-the-exact-same