作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用 CAAnimation,并且像许多新来者一样使用 CAAnimation;完成后,图层将恢复到其原始状态。
关于如何解决这个问题已经在这里问过几次了,答案是将以下代码添加到您的 CAAnimation 中。
animation.removedOnCompletion = NO;
虽然这可行,但根据 Apple 的 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"];
您确保动画值存储在模型中,这样即使动画从图层中移除,您的更改也会继续存在。
使用 removedOnCompletion = YES 不是持久的解决方案。每当您从图层中删除动画时,它都会恢复到旧状态。
关于ios - CAAnimation,回弹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9331238/
我正在尝试使用 CAAnimation,并且像许多新来者一样使用 CAAnimation;完成后,图层将恢复到其原始状态。 关于如何解决这个问题已经在这里问过几次了,答案是将以下代码添加到您的 CAA
我是一名优秀的程序员,十分优秀!