我正在尝试CAAnimation,就像许多新手做CAAnimation一样。完成后,该层将恢复为原始状态。

在这里,有关如何解决此问题的问题已问了几次,答案是将以下代码添加到您的CAAnimation中。

animation.removedOnCompletion = NO;

尽管这可行,但是根据苹果公司在WWDC上讨论CAAnimation的视频,推荐的解决方案是:
// animating opacity
layer.opacity = newOpacityValue;
[layer addAnimation:animation forKey:@"opacity"];

所以我想知道这两者之间的主要区别是什么以及何时使用它们?

最佳答案

显式动画实际上不会修改CALayer的属性。

他们只是修改了presentationLayer,这是您实际看到的。动画完成后,您将看到与动画之前完全相同的CALayer。

通过这样设置值

// animating opacity
layer.opacity = newOpacityValue;
[layer addAnimation:animation forKey:@"opacity"];

您确保已将动画值存储在模型中,因此即使将动画从图层中删除,所做的更改也将继续存在。

使用removeOnCompletion = YES不是永久解决方案。每当您从图层中删除动画时,它将恢复为旧状态。

关于ios - CAAnimation,回弹,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9331238/

10-12 14:46