大家可能经常遇到美工给你的颜色是16进制的自己要去计算或者想办法转换为RGB格式的。感觉是不是太繁琐又消耗精力。
今天给大家分享两个简单的方法
第一个方法这里仅限6位16进制字符串转换
-(UIColor *)colorWithString:(NSString *)string
{
NSString *f1=[colorString substringWithRange:NSMakeRange(0, 2)];
NSString *f2=[colorString substringWithRange:NSMakeRange(2, 2)];
NSString *f3=[colorString substringWithRange:NSMakeRange(4, 2)];
unsigned int red,green,blue;
[[NSScanner scannerWithString:f1] scanHexInt:&red];
[[NSScanner scannerWithString:f2] scanHexInt:&green];
[[NSScanner scannerWithString:f3] scanHexInt:&blue];
return [[UIColor alloc]initWithRed:red/255.f green:green/255.f blue:blue/255.f alpha:1.f];
}
使用方法
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [self colorWithHexString:@"000000"];
}
宏定义转换RGB方法。这个方法更加方便
#ifdef __OBJC__
//RGB 颜色宏
#define UIColorFromRGB(rgbValue) [UIColor \
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
//RGB 颜色宏及透明度
#define UIColorFromRGBWithAlpha(rgbValue,a) [UIColor \
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
blue:((float)(rgbValue & 0xFF))/255.0 alpha:a]
#endif
使用方法
- (void)viewDidLoad {
[super viewDidLoad];
// 设置颜色
self.view.backgroundColor = UIColorFromRGB(0xFFFFFF);
// 设置颜色及透明度
self.view.backgroundColor = UIColorFromRGBWithAlpha(0xFFFFFF, 0.5);
}
好了 祝大家代码越来越优秀 !