使用UIButton作为开关

时间:2018-09-02 23:23:56

标签: ios swift uibutton

我正在尝试使用UIButton作为开关。轻按按钮时,按钮图像应更改为(atcs.png),状态应为(.selected)。 再次轻按图像时,按钮图像应再次变为(actns.png),状态应为(.normal)。

下面是我当前代码的示例:

@IBOutlet weak var atcBtn: UIButton!

@IBAction func atcTapped(_ sender: UIButton) {
    if atcBtn.isSelected {
        atcBtn.setImage(UIImage(named: "atcs.png"), for:.selected)
    } else {
        atcBtn.setImage(UIImage(named: "atcns.png"), for:.normal)
    }
}

这不起作用。缺少什么吗?尝试了此处列出的几乎所有解决方案,但没有尝试。

1 个答案:

答案 0 :(得分:3)

首先,将您的setImage代码移至viewDidLoad。没有理由重复设置这些图像:

atcBtn.setImage(UIImage(named: "atcs.png"), for:.selected)
atcBtn.setImage(UIImage(named: "atcns.png"), for:.normal)

接下来,在点击按钮时切换isSelected属性:

@IBAction func atcTapped(_ sender: UIButton) {
    sender.isSelected = !sender.isSelected
}

还要注意-使用sender而不是硬编码atcBtn