2010-10-22 66 views
1

我目前正在研究iOS的一些核心动画内容,并且非常享受我自己。这个问题关于可以实现动画的许多不同方式。假设你想为每个动画循环旋转一次UIView几次,但是使用不同的定时函数。据我所知,存在实现这个至少两种不同的方式:CAAnimationGroup与CAKeyframeAnimation的优点和缺点

  1. 我可以创建一个CAAnimationGroup和不同CABasicAnimation对象添加到它。通过控制他们的beginTime属性并设置不同的CAMediaTimingFunction他们我得到我想要的个人行为。
  2. 另一种选择是创建一个CAKeyframeAnimation并通过添加不同的键值我可以单独定制不同的“帧”。

所以我的问题是这样的:是否有使用这些实现中的任何一个的优势?

我的后续问题:如果是这样,你用什么方法找出这个问题?换句话说,我将如何去测量动画的表现?

谢谢你提前和最好的问候。

// Abeansits

回答

2

对我来说,这两者之间的选择是一个语义之一:

  • 如果我想动画一个对象超过几个阶段,我使用关键帧动画。
  • 如果我想同时动画几个对象,我使用动画组(如果单个对象的动画包含多个阶段,则可以选择包含多个关键帧动画)。
+0

好的,似乎有道理。但是你有没有什么办法可以确保一种方法比另一种方法更有效率?由于您实际上是在使用不同的类和接口实现动画,因此它们的性能至少应该有一点点不同。或者我看到这个错误? – ABeanSits 2010-10-22 11:53:04

+0

我不知道。但是如果差异有任何意义,我会感到惊讶。在低级别的实现中,两者应该归结为非常类似的代码。 – 2010-10-22 13:32:13