arrays - 延迟循环数组 - Swift

标签 arrays swift delay

我试图循环遍历一个数组,一次点亮一种颜色,一旦完成循环遍历每个项目,调用另一个函数来运行。到目前为止我有这个:

//Delay function from http://stackoverflow.com/questions/24034544/dispatch-after-gcd-in-swift/24318861#24318861
func delay(delay:Double, closure:()->()) {
    dispatch_after(
        dispatch_time(
            DISPATCH_TIME_NOW,
            Int64(delay * Double(NSEC_PER_SEC))
        ),
        dispatch_get_main_queue(), closure)
}

@IBAction func computerTurn(){
    if(isFirstLevel){levelLabel.text = ("Level 1"); isFirstLevel = false}
    else{ level++ }

    var gameOrderCopy = gameOrder
    var randomNumber = Int(arc4random_uniform(4))
    gameOrder.append(randomNumber)
    var i = 0

    for number in gameOrder{

        if number == 0{
            self.greenButton.highlighted = true
            self.delay(1){
                self.greenButton.highlighted = false
                }
        }

        else if number == 1{
            self.redButton.highlighted = true
            self.delay(1){
                self.redButton.highlighted = false
               }

        }

        else if number == 2{
            self.yellowButton.highlighted = true
            self.delay(1){
                self.yellowButton.highlighted = false
                }
        }
      else if number == 3{
        self.blueButton.highlighted = true
        self.delay(1){
            self.blueButton.highlighted = false
            }
        }
    }
}

但目前,它所做的只是延迟一秒钟,然后立即点亮所有颜色。我需要的是按顺序点亮颜色,每个颜色之间有第二个延迟。提前致谢!

最佳答案

不要执行delay 1,将vardelayTime = 1放在循环上方,并在循环中执行self.delay(delayTime++)

关于arrays - 延迟循环数组 - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29315372/

相关文章:

php - 查找数组中的平均值

javascript - 如何在脚本中清空数组

C - 混合 Qsort 与结构(字符串和 double )

javascript - 从对象数组中弹出

javascript - 延迟的 promise 链不起作用

ios - 'OSSpinLock' 在 iOS 10.0 : Use os_unfair_lock() from <os/lock. h> 中被弃用

uitableview - tableview 将 subview 添加到自定义单元格

ios - 如何使用 SwiftyJSON 循环 JSON 对象数组?

objective-c - 计时器因调整窗口大小而延迟

if 为真后的快速延迟