在返回原始文本之前,将标签文本更改几秒钟

use*_*428 3 uilabel swift

基本上我正在尝试实现一个动画,它将在返回原始文本之前将标签的文本替换几秒钟.我已经设法让标签在3秒后更改文本并淡出,但是我无法弄清楚如何在动画完成后将文本返回到原始状态.

这是我目前拥有的:

    @IBAction func fade() {
    userMessageLabel.alpha = 100
    UIView.beginAnimations(nil, context: nil)
    UIView.setAnimationDuration(3)
    userMessageLabel.text = "Name is not valid!"
    userMessageLabel.alpha = 0
    UIView.commitAnimations()
}
Run Code Online (Sandbox Code Playgroud)

我需要文字标签返回"请输入你的名字"

任何帮助将非常感激.

Pla*_*erb 5

我通过使用延迟解决了这个问题:

userMessageLabel.text = "Name is not valid!" 
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 3) {
  userMessageLabel.text = "Please enter your first name"
}
Run Code Online (Sandbox Code Playgroud)

我的解决方案包括从这个答案略微简化延迟

您似乎已经知道如何将文本设置为淡出或淡出.如果需要,可以将动画代码添加到asyncAfter延迟功能中