Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在swift中,是否有一种使用按钮标签比较按钮图像的方法_Ios_Swift - Fatal编程技术网

Ios 在swift中,是否有一种使用按钮标签比较按钮图像的方法

Ios 在swift中,是否有一种使用按钮标签比较按钮图像的方法,ios,swift,Ios,Swift,我是swift的业余爱好者,我一直在尝试做一个井字游戏。所以我想知道是否有任何方法可以使用按钮标签来比较按钮图像 提前谢谢 是的,您可以这样比较图像: if yourCell.ButtonOutlet.currentImage.isEqual(UIImage(named: "yourImageName")) { } else { } 我认为有更好的方法来解决这个问题 不要试图比较按钮的图像。相反,您应该做的是创建一个模型。模型基本上是用更简单的数据结构表示更

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


提前谢谢

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

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

        } else {

        }

我认为有更好的方法来解决这个问题

不要试图比较按钮的图像。相反,您应该做的是创建一个模型。模型基本上是用更简单的数据结构表示更复杂系统的东西

在tic tac toe游戏中,您可以创建这样的枚举,而不是处理按钮:

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] {
    ...
}
您知道,这将与比较按钮图像相同,因为模型和视图是同步的


以这种方式编写程序的好处是可以避免很多复杂的问题。按钮是复杂的对象。他们的形象可以是任何东西,而不仅仅是零和十字架。我们应该使用枚举将值限制为3-
.empty
.nough
.cross

您能详细说明一下吗?显示一些您试图实现的代码。。。