一 设置选中状态的背景色
如果使用UIButton
的setBackgroundColor:
方法来设置背景,在点击该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];