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
delegate
property of individual animations is ignored. - The
removeOnCompletion
property of individual animations is ignored. - The AnimationGroup has its own
delegate
andremoveOnCompletion
properties. - 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
animations
property of CAAnimationGroup is copied, not retained.