使用另一个按钮设置按钮图像 - Swift

时间:2017-06-30 14:34:24

标签: swift

我正在尝试使用其他按钮更改按钮图像。想法是这个按钮将按钮重置为原始状态,以允许用户再次播放。

@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按钮的图像但是当我使用上面的代码时出现此错误:enter image description here

我需要使用按钮的发件人部分来识别正在按下哪个按钮,那么我该如何更改它的背景?

由于

1 个答案:

答案 0 :(得分:3)

您的gridSpace0是一个功能,因此您无法像这样设置图像。

@IBAction func gridSpace0(_ sender: Any) {
    let button = sender as! UIButton
    checkIfFree(gridSpace: 0, sender: button)
}

您需要先将按钮链接到视图控制器,然后按此设置按钮enter image description here