自定义UIButton:如何在选择更改时设置背景颜色?

时间:2018-03-27 10:08:22

标签: ios uibutton

我创建了一个自定义UIButton,我希望它的背景在选中时为红色,否则为白色。

所以我尝试了这个:

class MyCustomButton: UIButton {

    override var isSelected: Bool {
        didSet {
            backgroundColor = isSelected ? .red : .white
        }
    }

}

但它不起作用,我设置了一个断点,但它永远不会被调用。我怎么能这样做?感谢

3 个答案:

答案 0 :(得分:1)

怎么样:

override open var isHighlighted: Bool {
    didSet {
        backgroundColor = isHighlighted ? UIColor.red : UIColor.white
    }
}  

注意:按钮类型应为自定义。它不适用于带有类型系统的按钮。

答案 1 :(得分:0)

您可能缺少与按钮的界面构建器连接。

enter image description here

答案 2 :(得分:-1)

您可以设置当前按钮的背景图像。

我希望它会对你有所帮助。

UIButton* customButton = [UIButton buttonWithType:UIButtonTypeCustom];
[[customButton setBackgroundImage:[UIImage imageNamed:@"stateNormalImage"] forState:UIControlStateNormal]];
[[customButton setBackgroundImage:[UIImage imageNamed:@"stateSelectedlImage"] forState:UIControlStateSelected]];