Iphone 如何重新激活应用的CABasicAnimation或检查CABasicAnimation是否正在实际运行?
这很奇怪: 我有一个包含旋转CALayer的视图。使用Iphone 如何重新激活应用的CABasicAnimation或检查CABasicAnimation是否正在实际运行?,iphone,ios,core-animation,Iphone,Ios,Core Animation,这很奇怪: 我有一个包含旋转CALayer的视图。使用transform.rotation.z关键路径上的CABASICanization旋转图层。很好 然后,包含该层的视图被解除分配,一段时间后,我再次加载所有内容。我重新创建视图和旋转的图层,并应用该CABASICANIATION。在某些情况下,动画无法启动 因此,我接下来要做的是:如果动画被暂停,执行延迟选择器来启动动画。但由于在它运行时踢它会导致屏幕上出现明显的故障,因此我会检查动画对象是否存在: CABasicAnimation *an
transform.rotation.z
关键路径上的CABASICanization旋转图层。很好
然后,包含该层的视图被解除分配,一段时间后,我再次加载所有内容。我重新创建视图和旋转的图层,并应用该CABASICANIATION。在某些情况下,动画无法启动
因此,我接下来要做的是:如果动画被暂停,执行延迟选择器来启动动画。但由于在它运行时踢它会导致屏幕上出现明显的故障,因此我会检查动画对象是否存在:
CABasicAnimation *anim = [rotatedLayer animationForKey:@"transform.rotation.z"];
if (!anim) {
[self startRotating];
}
不幸的是,当动画没有发生时,我确实应用了一个CABasicAnimation对象。逻辑上,因为是我创造的。动画无法启动。然而,当我在大约一秒钟后继续应用它时,它就工作了
我甚至从学员那里得到了AnimationDidStart消息:
- (void)animationDidStart:(CAAnimation *)theAnimation {
NSLog(@"animation started!!!!");
}
这很可能不是一个bug,而是一个特性
是否有一种方法可以让Cabasicanization对象踢一脚使其运行,即使CoreAnimation认为它已经在运行(有时情况并非如此),当它实际上已经在运行时,没有给它一个踢屁股的动作?按照中给出的暂停和恢复动画,不幸的是,这并不能解决问题。动画仍处于暂停状态。