我正在尝试用 Swift 制作一个简单的动画。这是淡入。
我尝试过:
self.myFirstLabel.alpha = 0
self.myFirstButton.alpha = 0
self.mySecondButton.alpha = 0
然后,我有:
self.view.addSubview(myFirstLabel)
self.view.addSubview(myFirstButton)
self.view.addSubview(mySecondButton)
然后:
UIView.animateWithDuration(1.5, animations: {
self.myFirstLabel.alpha = 1.0
self.myFirstButton.alpha = 1.0
self.mySecondButton.alpha = 1.0
})
我的 viewDidLoad 函数中有所有这些。
我如何使它起作用?
最佳答案
问题是您试图在 View Controller 的生命周期中过早地启动动画。在 viewDidLoad
中, View 刚刚创建,尚未添加到 View 层次结构中,因此此时尝试为其 subviews
之一设置动画会产生不良结果.
您真正应该做的是继续在 viewDidLoad
(或您创建 View 的位置)中设置 View 的 alpha,然后等待 viewDidAppear
:要调用的方法。此时,您可以毫无问题地开始制作动画。
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
UIView.animate(withDuration: 1.5) {
self.myFirstLabel.alpha = 1.0
self.myFirstButton.alpha = 1.0
self.mySecondButton.alpha = 1.0
}
}
关于ios - 在 Swift 中做一个简单的淡入淡出动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24111770/