在swift中更新按钮图像

时间:2016-02-26 11:48:05

标签: arrays swift

我有一些代码可以更新按钮的图像,但是,当我尝试运行代码时,我一直会收到错误:

'致命错误:数组索引超出范围'

我试图运行的代码如下:

    func updateButtonImages() {
    let buttons = total.map { buttonList[$0] }
    **buttons[0].setImage(UIImage(named: "p2"), forState: .Normal)**



    var time = dispatch_time(DISPATCH_TIME_NOW, 0)
    for (priorButton, currentButton) in zip(buttons[0..<buttons.count - 1], buttons[1..<buttons.count]) {
        time = dispatch_time(time, Int64(speed * Double(NSEC_PER_SEC)))
        dispatch_after(time, dispatch_get_main_queue()) {
            priorButton.setImage(UIImage(named: "p2"), forState: .Normal)
            currentButton.setImage(UIImage(named: "p1"), forState: .Normal)
        }
    }

    time = dispatch_time(time, Int64(speed * Double(NSEC_PER_SEC)))
    dispatch_after(time, dispatch_get_main_queue()) {
        buttons.last?.setImage(UIImage(named: "p1"), forState: .Normal)
        //replayButton.enabled = true
        self.buttonList.forEach { $0.enabled = true }
    }
}

我有什么办法可以解决这个问题吗?

提前感谢。

1 个答案:

答案 0 :(得分:1)

此错误:致命错误:数组索引超出范围包含并回答。

您尝试使用不在此数组范围内的项目。

示例:

var items = [1, 2]

items[2] // error only items are available at indexes 0 and 1

所以在你的代码中检查 buttonList 数组。