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"]]