UIButton设置背景图片时,是需要一张图片才可以。但是我又想直接通过UIColor来设置,那怎么办?

有个方法是可以将UIColor转化成UIImage对象,可以画出图片,不用让美工MM去设计一张图片,省时间,实际项目还是做成图片的好。

方法

//颜色转换图片


[objc]  view plain copy


1. +(UIImage*) createImageWithColor:(UIColor*) color  
2. {  
3. 0.0f, 0.0f, 1.0f, 1.0f);  
4. .size);  
5.     CGContextRef context = UIGraphicsGetCurrentContext();  
6.  CGColor]);  
7.     CGContextFillRect(context, rect);  
8. UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();  
9.     UIGraphicsEndImageContext();  
10. return theImage;  
11. }


使用

//调用方式


[objc]  view plain copy


1. [registerButton setBackgroundImage:[self createImageWithColor:UIColorFromRGB(0xff584e)] forState:UIControlStateHighlighted];


扩展知识

0xff584e相当于css样式文件中的ff584e,在IOS中我们需要在前面加个0x,RGB颜色转换 (16进制=》10进制),需要用到方法UIColorFromRGB

1. UIColor 转UIImage  
2. - (UIImage*) createImageWithColor: (UIColor*) color  
3. {  
4. 0,0, 1, 1);  
5. .size);  
6.     CGContextRef context = UIGraphicsGetCurrentContext();  
7.  CGColor]);  
8.     CGContextFillRect(context, rect);  
9. UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();  
10.     UIGraphicsEndImageContext();  
11. return theImage;  
12. }  
13.    
14.   
15. UIImage转UIColor  
16. [UIColor colorWithPatternImage:[UIImageimageNamed:@“bg.png"]]