我正在尝试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/