关于ios:通过IF语句在按钮上显示图像

 2021-04-26 

Showing Images on Button through IF Statement

我是Swift和iOS平台的新手,但我认为我对此有很好的了解。

我正在尝试制作一个简单的Bingo游戏,但是遇到了一个小问题。

我需要使用户能够取消选择号码。现在,我有一些按钮,用户可以单击这些按钮将其更改为标记(为其提供背景图像)。但是,如果他们再次按下该按钮,我想将图像更改为空白。

在我生命中,我似乎无法弄清楚如何(最好是使用IF语句)检查按钮是否已被第一次按下。我试图使用IF语句将图像与以下内容进行比较:

1
2
3
4
5
6
7
8
9
10
11
12
13
@IBAction func action(_ sender: AnyObject) {

    if UIImage(named:"MarkedPiece") == true {

        // labels for Numbers will be hidden here

    } else {

        sender.setImage(UIImage(named:"MarkedPiece"), for: UIControlState())

    }

}

以上是所有按钮都指向的功能。我收到错误消息,告诉我无法将UIImage类型与BOOL进行比较,这是有道理的。我还有另一种方法吗?

任何帮助将不胜感激!


您可以将按钮图像设置为normal状态和selected状态。

1
2
btn.setImage(UIImage(named:""), for: .normal)
btn.setImage(UIImage(named:""), for: .selected)

并使用.isSelected

1
2
3
4
5
6
7
8
9
10
@IBAction func action(_ sender: UIButton) {
    sender.isSelected = !sender.isSelected

    if sender.isSelected {
        // labels for Numbers will be hidden here

    } else {

    }
}