我的UIView中有一个无限的动画(旋转图像,输入:CABasicAnimation
)
animation.repeatCount = HUGE_VALF;
当我推送一个新的ViewController并返回到包含View inside的动画的初始ViewController时,旋转停止了。
即使我在调用ViewController的viewWillAppear
方法时再次设置动画,它也不会再次旋转。
我做错了什么?
答案 0 :(得分:56)
实际上,有一种简单的方法可以解决这个问题 将动画设置为:
Swift 3版
animation.removedOnCompletion = false
Swift 4版
animation.isRemovedOnCompletion = false
当NavigationController被推送到另一个ViewController的视图时,图层本身没有被破坏,因为UINavigationController获得了viewControllers
属性,它将保留原始的viewController,从而保留其视图和动画层。
即使您将repeatCount设置为无限,当从界面中删除视图时,此CABasicAnimation对象也会被销毁。因此,将isRemovedOnCompletion
设置为false以保留它。
答案 1 :(得分:4)
当从屏幕上移除图层时,它会丢失动画。一旦图层再次出现在屏幕上,您需要将它们添加回来。
viewWillAppear:
太早了,因为到那时该图层实际上并不在屏幕上。尝试在viewDidAppear:
中添加动画。