我知道我可以使用followign语法(如何编写Swift 3中的延迟)来延迟Swift 3中的部分代码:
let when = DispatchTime.now() + 2 // change 2 to desired second delay.
DispatchQueue.main.after(when: when) {
// run your code with delay
}
Run Code Online (Sandbox Code Playgroud)
或者类似的帖子:如何在Swift 3中创建调度队列
然而,这些不是我可以使用的延迟方法.我需要在循环中插入一个延迟.例如,假设有一个标签组件和一个按钮.当我单击按钮时,我希望标签连续显示循环变量:
@IBOutlet weak var showIntegers: UILabel!
@IBAction func countNums(_ sender: AnyObject) {
for i in 1...5 {
showIntegers.text = String(i)
//delay code here, sleep(1) doesn't work
}
}
Run Code Online (Sandbox Code Playgroud)
我使用睡眠作为延迟但是然后应用程序睡眠5秒然后显示5.我连续1秒钟看不到1,2,3,4和5.
我也弄清楚如何在循环中使用DispatchQueue类.感谢您的帮助.