gpt4 book ai didi

ios - 在 swift 中为 for 循环添加延迟

转载 作者:可可西里 更新时间:2023-11-01 04:07:22 27 4
gpt4 key购买 nike

我有一个编码“问题”。

我有一个标签,我想每 2 秒动态更改其中的文本。我做了以下事情:

// WELCOME STRING ARRAY
let welcomeContainer:[String] = ["Welcome","Benvenuti","Bienvenue","Willkommen","üdvözlet","Dobrodošli","добро пожаловать","Witajcie","Bienvenido","Ласкаво просимо","Vitajte","欢迎你来"]

然后,我没有使用 timerwithinterval(这对于这个简单的任务来说似乎太多了),而是尝试在 的函数中使用 delay 方法>for 循环:

func welcomeLabelChange() {
for i in 0..<welcomeContainer.count {
welcomeLabel.text = welcomeContainer[i]
delay(delay: 2.0, closure: {})
}

不幸的是,它完全跳过了延迟... for 循环立即执行,只显示数组中的最后一个文本。我做错了什么?

我找到了这个 OBJ-C answer ,但它建议使用(旧的)NSTimer 实现。

最佳答案

你也可以使用这个函数来延迟一些事情

//MARK: Delay func 

func delay(_ delay:Double, closure:@escaping ()->()) {
DispatchQueue.main.asyncAfter(
deadline: DispatchTime.now() + Double(Int64(delay * Double(NSEC_PER_SEC))) / Double(NSEC_PER_SEC), execute: closure)
}

用法是:

        delay(2)  //Here you put time you want to delay
{
//your delayed code
}

希望对你有所帮助。

关于ios - 在 swift 中为 for 循环添加延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39787319/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com