动画输入文本,快速

问题描述 投票:0回答:1

我正在尝试制作一个书写文本的动画,有人建议我这段代码

extension UILabel {
    func animation(typing value: String, duration: Double){
        for char in value {
            self.text?.append(char)
            RunLoop.current.run(until: Date() + duration)
        }
    }
}
override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        animationMainLabel.text = ""
        animationMainLabel.animation(typing: "[BE YOUR OWN GODDESS \nWITH STEYA COSMETICS.]", duration: 0.1)
    }

它在 iPhone 模拟器上运行良好,但在真实 iPhone 上动画不起作用。在真正的 iPhone 上,文本只是显示而已。怎么了?

ios swift uikit
1个回答
0
投票

您的代码会阻塞主线程直到完成,这会冻结 UI。我不确定为什么它甚至可以在模拟器上运行。您需要避免阻塞主线程,以便 UI 可以随时更新。

您可以这样做的一种方法是:

DispatchQueue.main.asyncAfter(deadline: .now() + duration)
© www.soinside.com 2019 - 2024. All rights reserved.