UIButton

一 设置选中状态的背景色

如果使用UIButtonsetBackgroundColor:方法来设置背景,在点击该Button的时候背景色是不会变换的,如果想背景色发生变化,可以先在自定义UIButton.h文件中定义两个变量

@property(nonatomic, strong) UIColor *backgroundHighlightColor;
@property(nonatomic, strong) UIColor *backgroundNormalColor;

然后在.m文件中添加下面的3个方法

- (void)setBackgroundNormalColor:(UIColor *)backgroundNormalColor
{
    _backgroundNormalColor = backgroundNormalColor;
    self.backgroundColor = backgroundNormalColor;
}

- (void)setBackgroundColor:(UIColor *)backgroundColor
{
    if (!self.highlighted) {
        //直接设置backgroundColor属性,需要把这个值赋给_backgroundNormalColor,否则后面背景色不能正常切换
        _backgroundNormalColor = backgroundColor;
    }
    [super setBackgroundColor:backgroundColor];

}

- (void)setHighlighted:(BOOL)highlighted
{
    [super setHighlighted:highlighted];
    //如果没有设置高亮背景色,则不改变背景色
    if (self.backgroundHighlightColor) {
        self.backgroundColor = highlighted ? self.backgroundHighlightColor : self.backgroundNormalColor;
    }
}```
使用的时候设置设置对应的属性即可

button.backgroundColor = [UIColor redColor];
button.backgroundHighlightColor = [UIColor greenColor];

你可能感兴趣的:(UIButton)