private func showOrder() {
disableButtons()
var count = 0
_ = Timer.scheduledTimer(withTimeInterval: 2, repeats: true) { time in
self.popColor(color: self.colorOrder[count])
count += 1
if count == self.colorOrder.count {
time.invalidate()
self.depopAllButtons()
self.enableButtons()
}
}
}
在此功能中,我正在遍历颜色数组。 popColor()方法用于向屏幕上的按钮添加阴影等。
我遇到的问题是popColor()函数似乎在执行完闭包后执行,因此它总是落后于应该出现的位置。导致的错误是循环的最后一次迭代中,最后一种颜色不执行其popColor()。
是否可以像我在这里用popColor()那样在闭包内部调用函数?
答案 0 :(得分:0)
我已经编写了一些小改动的代码:
var count = 0
_ = Timer.scheduledTimer(withTimeInterval: 1, repeats: true) { time in
debugPrint("set color")
count += 1
if count == 3 {
time.invalidate()
debugPrint("disable set color")
}
}
控制台显示:
"set color"
"set color"
"set color"
"disable set color"
您的计时器工作正常。在其他地方寻找问题。