一 設(shè)置選中狀態(tài)的背景色
如果使用UIButton的setBackgroundColor:方法來設(shè)置背景,在點(diǎn)擊該Button的時(shí)候背景色是不會(huì)變換的,如果想背景色發(fā)生變化,可以先在自定義的UIButton的.h文件中定義兩個(gè)變量
@property(nonatomic, strong) UIColor *backgroundHighlightColor;
@property(nonatomic, strong) UIColor *backgroundNormalColor;
然后在.m文件中添加下面的3個(gè)方法
- (void)setBackgroundNormalColor:(UIColor *)backgroundNormalColor
{
_backgroundNormalColor = backgroundNormalColor;
self.backgroundColor = backgroundNormalColor;
}
- (void)setBackgroundColor:(UIColor *)backgroundColor
{
if (!self.highlighted) {
//直接設(shè)置backgroundColor屬性,需要把這個(gè)值賦給_backgroundNormalColor,否則后面背景色不能正常切換
_backgroundNormalColor = backgroundColor;
}
[super setBackgroundColor:backgroundColor];
}
- (void)setHighlighted:(BOOL)highlighted
{
[super setHighlighted:highlighted];
//如果沒有設(shè)置高亮背景色,則不改變背景色
if (self.backgroundHighlightColor) {
self.backgroundColor = highlighted ? self.backgroundHighlightColor : self.backgroundNormalColor;
}
}```
使用的時(shí)候設(shè)置設(shè)置對(duì)應(yīng)的屬性即可
button.backgroundColor = [UIColor redColor];
button.backgroundHighlightColor = [UIColor greenColor];