http://blog.csdn.net/lilinoscar/article/details/46827093
UIButton设置背景图片时,是需要一张图片才可以。但是我又想直接通过UIColor来设置,那怎么办?
有个方法是可以将UIColor转化成UIImage对象,可以画出图片,不用让美工MM去设计一张图片,省时间,实际项目还是做成图片的好。
方法
//颜色转换图片
- +(UIImage*) createImageWithColor:(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 *theImage = UIGraphicsGetImageFromCurrentImageContext();
- UIGraphicsEndImageContext();
- return theImage;
- }
使用
//调用方式
- [registerButton setBackgroundImage:[self createImageWithColor:UIColorFromRGB(0xff584e)] forState:UIControlStateHighlighted];
扩展知识
0xff584e相当于css样式文件中的ff584e,在IOS中我们需要在前面加个0x,RGB颜色转换 (16进制=》10进制),需要用到方法UIColorFromRGB
- UIColor 转UIImage
- - (UIImage*) createImageWithColor: (UIColor*) color
- {
- CGRect rect=CGRectMake(0,0, 1, 1);
- UIGraphicsBeginImageContext(rect.size);
- CGContextRef context = UIGraphicsGetCurrentContext();
- CGContextSetFillColorWithColor(context, [color CGColor]);
- CGContextFillRect(context, rect);
- UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();
- UIGraphicsEndImageContext();
- return theImage;
- }
- UIImage转UIColor
- [UIColor colorWithPatternImage:[UIImageimageNamed:@“bg.png"]]