作为初学者,我在一些基本的东西上遇到了困难。
所以,我的主 UIViewController
中的 View 有一个动画,但是当我移动到另一个 UIViewController
然后返回主视图时动画停止。
嗯,我的动画在 viewDidLoad()
中,已经尝试从 viewWillAppear()
和 viewDidAppear()
调用它,但可能这不是解决方案。
不幸的是我不知道在哪里回调动画,有人遇到过这个小问题吗?
如果可以提供帮助,这就是我正在使用的代码:
UIView.animate(withDuration: 1.0, delay:0, options: [.repeat, .autoreverse, .allowUserInteraction], animations: {
self.viewAnima.transform = CGAffineTransform(scaleX: 1.2, y: 1.2)
}, completion: nil)
最佳答案
ViewDidAppear 不是触发动画的正确位置。相反
例如。有一个代表。 在第一个 View Controller 中实现委托(delegate)。当关闭第二个 viewController 时,调用委托(delegate)。并将动画 block 放入其中并以 0.2 秒延迟触发动画。这给人的感觉就像是关闭 View 并开始动画。
//将此代码放入委托(delegate)函数中。
DispatchQueue.main.async(.now()+0.2) {
UIView.animate(withDuration: 2.0, animations: { () -> Void in
// Do you animation here
})
}
关于ios - 在不同 VC 之间移动时管理 UIView 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54504256/