【发布时间】:2017-12-27 14:31:32
【问题描述】:
我正在尝试创建一个函数,该函数将遍历 Ints 数组,并且对于每个项目,根据其值,弹出特定消息一秒钟左右,然后让消息消失,然后移动到数组中的下一项。我能够弄清楚如何使用 DISPATCH 为消息消失创建“延迟” - 但我仍然最终会立即弹出所有消息。
另外,我创建了一个名为“offAll()”的函数,它关闭所有消息,我试图在 for 循环结束时使用 DISPATCH 调用它——但正如我所说,它仍然显示所有消息。 (我也尝试将 DISPATCH 语句单独放入每个 case 语句中,但这似乎也没有帮助。)
仅供参考,我在 XCode 中使用的是 Swift 4。谢谢!!
func popUp(){
for item in order{
if item == 0 {
firstLabel.text = "ME!"
} else if item == 1 {
secondLabel.text = "ME!"
} else if item == 2 {
thirdLabel.text = "ME!"
} else {
fourthLabel.text = "ME!"
}
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
self.offAll()
}
}
【问题讨论】:
-
在函数的开头放置一个断点,并单步执行直到结束。希望它可以让您清楚为什么它们会同时出现。
-
另一个有用的想法。如果您有 4 个弹出框说“我!”,您可能应该让标签文本在这四个中在中说出不同的内容 - 这有助于排除其他问题。
标签: arrays swift loops delay dispatch