在swift中,有没有办法使用按钮标签比较按钮图像

时间:2017-08-28 06:42:05

标签: ios swift

我是斯威夫特的业余爱好者,我一直在尝试做一个井字游戏。因此,我想知道是否有任何方法可以使用按钮标记来比较按钮图像。

提前致谢。

2 个答案:

答案 0 :(得分:0)

我认为有更好的方法可以解决这个问题。

请勿尝试比较按钮的图像。相反,你应该做的是创建一个模型。模型基本上代表了一个更复杂的系统,具有更简单的数据结构。

在一个井字游戏中,你可以创建这样一个枚举,而不是处理按钮:

enum SqaureContent {
    case empty, nought, cross
}

您的模型将是SqaureContent

的二维数组
var gameBoard: [[SquareContent]] = [
    [.empty, .empty, .empty],
    [.empty, .empty, .empty],
    [.empty, .empty, .empty]
]

当用户点击按钮时,视图控制器可以通过设置按钮的图像并将模型中的值设置为.cross来处理点击。这样,您可以将模型与按钮(“视图”)同步。

然后,您可以在模型上执行所有操作,而不是按钮。

然后您可以比较这样的值:

if gameBoard[0][0] == gameBoard[1][0] && gameBoard[1][0] == gameBoard[2][0] {
    ...
}

您知道这与比较按钮图像相同,因为模型和视图是同步的。

以这种方式编写程序的好处是可以避免很多复杂情况。按钮是复杂的对象。他们的图像可以是任何东西,而不仅仅是noughts和crosses。我们应该使用枚举将值限制为3 - .empty.nought.cross

答案 1 :(得分:-1)

是的,您可以像这样比较图像:

if yourCell.ButtonOutlet.currentImage.isEqual(UIImage(named: "yourImageName")) {

        } else {

        }