此方法为通用方法,不需要了解流程,直接使用即可,如[self getColor:"336699"]。
- (UIColor *)getColor:(NSString *)hexColor
{
unsignedint red,green,blue;
NSRange range;
range.length = 2;
range.location = 0;
[[NSScannerscannerWithString:[hexColor substringWithRange:range]] scanHexInt:&red];
range.location = 2;
[[NSScannerscannerWithString:[hexColor substringWithRange:range]] scanHexInt:&green];
range.location = 4;
[[NSScannerscannerWithString:[hexColor substringWithRange:range]] scanHexInt:&blue];
return [UIColorcolorWithRed:(float)(red/255.0f) green:(float)(green / 255.0f) blue:(float)(blue / 255.0f) alpha:1.0f];
}
真正用过之后,发现用到的就是RGB各种颜色的比例,其实只需简单将字符串转换成16进制数即可。
如颜色RGB颜色为“3366cc”,则RGB比例为red:(3*16+3)/255 green:(6*16+6)/255 blue:(12*16+12)/255
可直接使用[UIColorcolorWithRed:red green:green blue:blue alpha:1.0f],即可实现。