设计给的RGB颜色数据,显示出来后与实际值差异很大。效果不是很理想,于是想到用16进制颜色转换UIColor来使用。以下是转换方法:
-(UIColor*)stringToColor:(NSString*)str{
//判断非空
if(!str || [strisEqualToString:@""]) {
return nil;
}
unsigned red, green, blue;
NSRangerange;
range.length=2;
range.location=1;
[[NSScannerscannerWithString:[str substringWithRange:range]]scanHexInt:&red];
range.location=3;
[[NSScannerscannerWithString:[str substringWithRange:range]]scanHexInt:&green];
range.location=5;
[[NSScannerscannerWithString:[str substringWithRange:range]]scanHexInt:&blue];
UIColor*color = [UIColorcolorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:1];
return color;
}
注:模拟器显示颜色差异较大,请以真机测试为准。
如发现不足的地方,欢迎再评论区指出。
网友评论