ios - 在 Swift 中做一个简单的淡入淡出动画?

标签 ios swift

我正在尝试用 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/

相关文章:

c# - UITextField.text 的双向绑定(bind)不更新

objective-c - CIFilter 在 Swift 中旋转 UIImage

ios - Xcode 12 AVMetadataMachineReadableCodeObject 问题

ios - 为我的变量编写自定义 Setter - Swift

ios - 如何判断自定义 UISearchBar 中的 UITableView 是否被触摸?

SwiftUI - 随着列表滚动的进行,使列表下方的内容可滚动

swift - UIViewController 在屏幕上的放置

ios - 如何使 Collection View 中的不同单元格转到 Swift 中的不同 View Controller

ios - AVAudioPlayer初始化和内存管理

ios - compactMapValues不过滤零值