【发布时间】:2011-09-18 12:12:46
【问题描述】:
我创建了一个 CABasicAnimation 并将其应用到这样的图层:
[rotatedLayer addAnimation:rotationAnimation forKey:@"transform.rotation.z"];
如何检查 rotateLayer 是否已经在 transform.rotation.z 路径上设置动画?
【问题讨论】:
标签: iphone ios core-animation
我创建了一个 CABasicAnimation 并将其应用到这样的图层:
[rotatedLayer addAnimation:rotationAnimation forKey:@"transform.rotation.z"];
如何检查 rotateLayer 是否已经在 transform.rotation.z 路径上设置动画?
【问题讨论】:
标签: iphone ios core-animation
检查[rotatedLayer animationForKey:@"transform.rotation.z"];的返回值。
【讨论】:
您可以设置一个ivar,例如:
BOOL _animationRunning;
并将动画的委托设置为您所在的类并实现功能:
animationDidStart:(CAAnimation *)anim
animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
并在这些回调中翻转布尔值。 Ole 的方法也可以,但是如果您将 beginTime 设置为具有延迟或将动画包装在 CAAnimationGroup 中以创建延迟(例如CAKeyframeAnimation delay before repeating),那么即使不是实际上是“动画”。
【讨论】: