iOS中根据按钮的不同点击状态,改变按钮的背景色

在开发中,我们会遇到这样的一种需求,就是根据按钮的不同点击状态,改变其不同的背景色,然而在改变按钮的背景色中,只能改变其背景色,并没有根据不同状态,改变其背景色的方法。但是,我们发现,在设置其背景图片的方法中是能够选择按钮的不同状态,那么我们是不是可以设置不同的背景图片的颜色来实现这一需求,具体的代码如下:

- (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];

你可能感兴趣的:(iOS中根据按钮的不同点击状态,改变按钮的背景色)