在开发中,我们会遇到这样的一种需求,就是根据按钮的不同点击状态,改变其不同的背景色,然而在改变按钮的背景色中,只能改变其背景色,并没有根据不同状态,改变其背景色的方法。但是,我们发现,在设置其背景图片的方法中是能够选择按钮的不同状态,那么我们是不是可以设置不同的背景图片的颜色来实现这一需求,具体的代码如下:
- (UIImage *)imageWithColor:(UIColor *)color
{
CGRect rect=CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context=UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *image=UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
再用如下的方法就可以了
[self.but setBackgroundImage:[self imageWithColor:[UIColor blackColor]] forState:UIControlStateNormal];