【发布时间】:2017-06-30 14:34:24
【问题描述】:
我正在尝试使用另一个按钮更改按钮图像。这个按钮的想法是将按钮重置为其原始状态,以允许用户再次播放。
@IBAction func playAgainButton(_ sender: Any) {
grid = ["0", "3", "4", "5", "6", "7", "8", "9", "a"]
let btnCheckMarkImage = UIImage(cgImage: "Image-1" as! CGImage)
gridSpace0.setImage(btnCheckMarkImage, forState: UIControlState.Normal)
gameResultLabel.isHidden = true
//let image = UIImage(named: "blankSpace")
}
@IBAction func gridSpace0(_ sender: Any) {
let button = sender as! UIButton
checkIfFree(gridSpace: 0, sender: button)
}
func checkIfFree(gridSpace: Int, sender: UIButton) {
if(player % 2 != 0)
{
player = playerone
currentPlayerName = playerOneName
}
else
{
player = playertwo
currentPlayerName = playerTwoName
}
if(grid[gridSpace] != "1" && grid[gridSpace] != "2")
{
if(player == playerone)
{
let image = UIImage(named: "TicTacToeX")
grid[gridSpace] = String(player)
sender.setBackgroundImage(image, for: UIControlState.normal)
player = player + 1;
}
else
{
let image = UIImage(named: "TicTacToeO")
grid[gridSpace] = String(player)
sender.setBackgroundImage(image, for: UIControlState.normal)
player = player + 1;
}
因此,每次用户按下按钮时,都会检查空间是否空闲,如果是,则更改按钮的图像。
就像我说的,我希望再次播放按钮来更改 gridSpace0 按钮的图像,但是当我使用上面的代码时,我得到了这个错误:
我需要使用按钮的发送者部分来识别正在按下哪个按钮,那么如何更改它的背景?
谢谢
【问题讨论】:
-
gridSpace0 是一个函数,而不是一个按钮。 Xcode 甚至表明它是 (Any) -> ()。您要更改的按钮的名称是什么?
-
当我将按钮“钩”到我给它的名称的 Swift 代码上时,我不知道是否有其他方法来命名/查找它的名称
标签: swift