在使用UIButton时,很多时候我们需要一个类似于- (void)setBackgroundColor:(UIColor *)color forState:(UIControlState)state这样的方法,来实现在不同的状态下使用不同的backgroundColor。遗憾的是,iOS默认并没有实现这个方法,那我们就自己来实现它。
让我们先来看看对于设置BackgroundImage,UIButton提供了如下方法:
- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state UI_APPEARANCE_SELECTOR; // default is nil
- (UIImage *)backgroundImageForState:(UIControlState)state;
类似的,我们的函数实现声明如下:
- (void)setBackgroundColor:(UIColor *)color forState:(UIControlState)state;
- (UIColor *)backgroundColorForState:(UIControlState)state;
具体实现如下所示,代码很简单,
1
2
3
4
5