Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何重新激活应用的CABasicAnimation或检查CABasicAnimation是否正在实际运行?_Iphone_Ios_Core Animation - Fatal编程技术网

Iphone 如何重新激活应用的CABasicAnimation或检查CABasicAnimation是否正在实际运行?

Iphone 如何重新激活应用的CABasicAnimation或检查CABasicAnimation是否正在实际运行?,iphone,ios,core-animation,Iphone,Ios,Core Animation,这很奇怪: 我有一个包含旋转CALayer的视图。使用transform.rotation.z关键路径上的CABASICanization旋转图层。很好 然后,包含该层的视图被解除分配,一段时间后,我再次加载所有内容。我重新创建视图和旋转的图层,并应用该CABASICANIATION。在某些情况下,动画无法启动 因此,我接下来要做的是:如果动画被暂停,执行延迟选择器来启动动画。但由于在它运行时踢它会导致屏幕上出现明显的故障,因此我会检查动画对象是否存在: CABasicAnimation *an

这很奇怪:

我有一个包含旋转CALayer的视图。使用
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认为它已经在运行(有时情况并非如此),当它实际上已经在运行时,没有给它一个踢屁股的动作?

按照

中给出的暂停和恢复动画,不幸的是,这并不能解决问题。动画仍处于暂停状态。