如何检查是否已应用并运行CABasicAnimation?

时间:2011-09-18 12:12:46

标签: iphone ios core-animation

我创建了一个CABasicAnimation并将其应用于这样的层:

[rotatedLayer addAnimation:rotationAnimation forKey:@"transform.rotation.z"];

如何检查rotateLayer是否已经在transform.rotation.z路径上设置了动画?

2 个答案:

答案 0 :(得分:7)

检查[rotatedLayer animationForKey:@"transform.rotation.z"];的返回值。

答案 1 :(得分:4)

您可以设置如下的ivar:

BOOL _animationRunning;

并将动画的委托设置为您所在的课程并实施这些功能:

animationDidStart:(CAAnimation *)anim
animationDidStop:(CAAnimation *)anim finished:(BOOL)flag

并在这些回调中翻转布尔值。 Ole的方法也可以,但是如果你将beginTime设置为延迟或将动画包装在CAAnimationGroup中以创建延迟(la CAKeyframeAnimation delay before repeating),那么你可以获得animationForKey也会返回该动画即使它实际上并没有动画"。