ios - 无限 CABasicAnimation 停止

标签 ios uiview calayer cabasicanimation

我的 UIView 中有一个无限动画(旋转图像,类型:CABasicAnimation)

animation.repeatCount = HUGE_VALF;

当我推送一个新的 ViewController 并返回到包含 View 的动画的初始 ViewController 时,旋转停止了。

即使我在调用 ViewController 的 viewWillAppear 方法时再次设置动画,它也不会再次旋转。

我做错了什么?

最佳答案

其实有一个简单的方法可以解决这个问题
将你的动画设置为:

Swift 3 版本

animation.removedOnCompletion = false

Swift 4 版本

animation.isRemovedOnCompletion = false

当 NavigationController 被推送到另一个 ViewController 的 View 时,图层本身不会被破坏,因为 UINavigationController 获得了 viewControllers 属性,该属性将保留原始 viewController,因此它的 View 和动画层。

当 View 从界面中移除时,这个 CABasicAnimation 对象被销毁,即使您将其 repeatCount 设置为无限。因此,将 isRemovedOnCompletion 设置为 false 以保留它。

关于ios - 无限 CABasicAnimation 停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13501133/

相关文章:

ios - 如何将圆形蒙版添加到 UIImageview 并同时更改框架和中心?

ios - 将 CALayer 放在 UIButton 层堆栈的最底部

iphone - 如何在动画完成时删除图层?

ios - 在 Xcode 7 Instruments 中解释 Time Profiler

ios - 竞争条件 GCD

xcode - 快速将事件分派(dispatch)给父 ViewController

iphone - 如何以编程方式完全像这个 UIButton 布局?

ios - 将架构从一个容器复制到另一个容器

ios - 什么时候应该屏蔽 UITableView 部分单元格的角?

ios - 如何在 viewDidLoad 方法中增加 UIView 的大小?