如何将两个CABasicAnimation动画组合在一起并在同一时间将它们踢出去?
问题描述:
我知道核心动画中有一些动画分组机制。所以可以说我有两个CABasicAnimation firstAnimation
和secondAnimation
。我将如何对这些进行分组,以及如何启动该组以开始动画制作?如何将两个CABasicAnimation动画组合在一起并在同一时间将它们踢出去?
答
你会想要使用CAAnimationGroup类。创建一个包含所需动画的数组,并将AnimationGroup的animations
属性设置为该数组。 CAAnimationGroup是CAAnimation的一个子类,因此您可以像使用常规动画一样使用[layer addAnimation:forKey:]
将它添加到图层中。一旦添加到图层中,组中的所有动画就会同时执行。
我建议先阅读CAAnimationGroup Reference。在使用它之前,有许多实现细节值得理解。例如:
- 单个动画的
delegate
属性被忽略。 - 单个动画的
removeOnCompletion
属性被忽略。 - 动画组有它自己的
delegate
和removeOnCompletion
属性。 - 动画未按时间缩放到组,所以如果单个动画的持续时间比组对象的持续时间长,则在组的持续时间结束时它会被中断。
- CAAnimationGroup的
animations
属性被复制,而不是保留。