gpt4 book ai didi

iphone - 如何重新激活已应用的 CABasicAnimation 或检查 CABasicAnimation 现在是否确实正在运行?

转载 作者:行者123 更新时间:2023-11-29 04:58:36 26 4
gpt4 key购买 nike

这很奇怪:

我有一个包含旋转的 CALayer 的 View 。使用 transform.rotation.z 键路径上的 CABasicAnimation 来旋转图层。工作正常。

然后,包括该层的 View 被释放,一段时间后我再次加载所有内容。我重新创建 View 和旋转的图层,并应用 CABasicAnimation。在某些情况下,动画不会开始。

所以我接下来要做的是:执行延迟选择器来踢动画(如果动画停止)。但由于在它已经运行时踢它会导致屏幕上出现明显的卡顿,因此我检查动画对象是否存在:

CABasicAnimation *anim = [rotatedLayer animationForKey:@"transform.rotation.z"];
if (!anim) {
[self startRotating];
}

不幸的是,当动画没有发生时,我确实应用了 CABasicAnimation 对象。从逻辑上讲,因为它是我创造的。动画无法开始。然而,当我继续在一秒钟左右再次应用它时,它就起作用了。

我什至从委托(delegate)那里收到 animiationDidStart 消息:

- (void)animationDidStart:(CAAnimation *)theAnimation {
NSLog(@"animation started!!!!");
}

这很可能不是一个错误,而是一个功能。

有没有办法给 CABasicAnimation 对象一个踢,让它运行,即使 CoreAnimation 认为它已经在运行(有时情况并非如此),而不是在它实际上运行时踢它屁股已经在运行了吗?

最佳答案

按照Apple's Technical Q&A中给出的动画暂停和恢复进行操作。

关于iphone - 如何重新激活已应用的 CABasicAnimation 或检查 CABasicAnimation 现在是否确实正在运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7461519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com