最近公司項(xiàng)目里有一處文本需要設(shè)置不同顏色伏社,而后臺(tái)傳過來的是16進(jìn)制的顏色(如:#FF6666)抠刺,想要把16進(jìn)制的顏色轉(zhuǎn)換成UIColor類型的,只需要寫一個(gè)方法就行:
- (UIColor *)colorWithHexColorString:(NSString *)hexColorString{
if ([hexColorString length] <6){//長(zhǎng)度不合法
return [UIColor clearColor];
}
NSString *tempString=[hexColorString lowercaseString];
if ([tempString hasPrefix:@"0X"]){//檢查開頭是0x
tempString = [tempString substringFromIndex:2];
}
else if ([tempString hasPrefix:@"#"]){//檢查開頭是#
tempString = [tempString substringFromIndex:1];
}
if ([tempString length] != 6){
return [UIColor clearColor];
}
//分解三種顏色的值
NSRange range;
range.location = 0;
range.length = 2;
// r
NSString *rString = [tempString substringWithRange:range];
// g
range.location = 2;
NSString *gString = [tempString substringWithRange:range];
// b
range.location = 4;
NSString *bString = [tempString substringWithRange:range];
//取三種顏色值
unsigned int r, g, b;
[[NSScanner scannerWithString:rString]scanHexInt:&r];
[[NSScanner scannerWithString:gString]scanHexInt:&g];
[[NSScanner scannerWithString:bString]scanHexInt:&b];
return [UIColor colorWithRed:((float) r /255.0f)
green:((float) g /255.0f)
blue:((float) b /255.0f)
alpha:1.0f];
}
然后調(diào)用
self.label.textColor = [self colorWithHexColorString:@"#FF6666"];
就OK了摘昌。