我试图有一个函数,将循环通过一个数组的Ints,并为每个项目,根据它的值,弹出一个特定的消息一秒钟或所以,然后让消息消失,然后移动到数组中的下一个项目。我能够弄清楚如何使用DISPATCH为消息消失创建一个“延迟” - 但我仍然终止于所有消息立即弹出。Swift循环通过数组之间暂停
另外,我创建了一个名为“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个弹出窗口说“我!”,你可能应该让标签文字在这四个中的每一个中说出不同的东西 - 这有助于排除其他问题。 – dfd