ios - 通过标签区分一个 UIButton

标签 ios swift uibutton

我有一个游戏板(8x8 阵列)。现在我想实现绘图功能,板上的每个单元格都是一个带有单独标签(从 0 到 63)的 UIButton。如何通过按钮(带有单独标签的按钮)也能够使用 setImage() 函数?

我的一段代码:

for i in 0..<8 {
    for j in 0..<8{
        if gameBoard[i,j].rawValue == 1 {
            cellButton.setImage(UIImage(named:"whitePiece.png"), for: UIControlState())
        } else if (gameBoard[i,j].rawValue == 2){
            cellButton.setImage(UIImage(named:"blackPiece.png"), for: UIControlState())
        }
    }
}

最佳答案

您发布的代码没有意义。看起来您有一个实例变量 cellButton,并且您正在尝试使用它以某种方式在所有 64 个按钮上设置图像。那是不可能的。如果你的按钮上有标签,你可以使用这样的东西:

假设您将标签号定义为 100 到 188 之间的范围,其中 10 位是行号,1 位是列号:

for i in 0..<8 {
    for j in 0..<8{
        //Create a tag number for this cell
        let tagNumber = 100 + i * 10 + j
        guard let aCellButton = view.viewWithTag(tagNumber) as? UIButton else {
          print("Error. Can't find button with tag \(tagNumber)")
          continue
        }
        if gameBoard[i,j].rawValue == 1 {
            aCellButton.setImage(UIImage(named:"whitePiece.png"), for: .normal)
        } else if (gameBoard[i,j].rawValue == 2){
            aCellButton.setImage(UIImage(named:"blackPiece.png"), for: .normal)
        }
    }
}

关于ios - 通过标签区分一个 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45693785/

相关文章:

ios - Frame.size.width 不返回正确的 UIButton 宽度

ios - 为什么 Xcode 中的控制台不能使用点符号打印我的对象的属性?

ios - 如何在 swift 中使用 performSelectorInBackground?

ios - Swift 类中的静态数组错误

arrays - 数组返回 null 并崩溃

swift - 有没有办法让 MLVision 的文本识别速度更快?

ios - 如何快速制作适用于所有屏幕尺寸的圆形按钮?

ios - 工具栏 sethidden=TRUE、sethidden=FALSE

ios - 本地图旋转或倾斜时禁用 mkannotationview 的旋转 - swift

ios - 在 UIViewController 中调用方法以定位错误