首页 > 解决方案 > 如何在swift中逐步更改UILabel文本

问题描述

我正在尝试在我的应用程序中做一个加载屏幕,我希望它显示加载状态文本,UILabel所以我选择viewDidAppear覆盖功能来完成这项工作,但结果是它只显示我设置的完整文本。这是我的代码viewDidAppear

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(false)
    loadingicon.alpha = 0
    statuslabel.alpha = 0
    loadingicon.alpha = 0
    statuslabel.alpha = 0

    // change 2 to desired number of seconds
    UIView.animate(withDuration: 0.7, animations: {
        //self.imganimation.frame.origin.y -= 150
        self.loadingicon.alpha = 1
        self.statuslabel.alpha = 1
        // self.loadingicon.frame.origin.y -= 50
        // self.statuslabel.frame.origin.y -= 50

    }, completion: nil)

    self.statuslabel.text = "Loading the data"

    sleep(5)

    if CheckInternet.Connection(){
            self.statuslabel.text = "Connection Success"
    } else {
    }
}

如您所见,我尝试让系统休眠 5 秒,以允许它逐步显示我的文本,但“加载数据”文本消失了,它只在该过程完成时向我显示“连接成功”文本我该如何处理这个问题

标签: swift

解决方案


使用 GCD 从当前时间添加延迟。

DispatchQueue.main.asyncAfter(deadline: .now() + 5) {
// Add the code you want to execute after the delay
}

推荐阅读