如何将两个CABasicAnimation动画组合在一起并在同一时间将它们踢出去?

问题描述:

我知道核心动画中有一些动画分组机制。所以可以说我有两个CABasicAnimation firstAnimationsecondAnimation。我将如何对这些进行分组,以及如何启动该组以开始动画制作?如何将两个CABasicAnimation动画组合在一起并在同一时间将它们踢出去?

你会想要使用CAAnimationGroup类。创建一个包含所需动画的数组,并将AnimationGroup的animations属性设置为该数组。 CAAnimationGroup是CAAnimation的一个子类,因此您可以像使用常规动画一样使用[layer addAnimation:forKey:]将它添加到图层中。一旦添加到图层中,组中的所有动画就会同时执行。

我建议先阅读CAAnimationGroup Reference。在使用它之前,有许多实现细节值得理解。例如:

  1. 单个动画的delegate属性被忽略。
  2. 单个动画的removeOnCompletion属性被忽略。
  3. 动画组有它自己的delegateremoveOnCompletion属性。
  4. 动画未按时间缩放到组,所以如果单个动画的持续时间比组对象的持续时间长,则在组的持续时间结束时它会被中断。
  5. CAAnimationGroup的animations属性被复制,而不是保留。