您的位置:首页 > 产品设计 > UI/UE

//16进制颜色(html颜色值)字符串转为UIColor

2015-09-14 15:40 134 查看
+ (UIColor *) colorWithHexString: (NSString *) stringToConvert
{
NSString *cString = [[stringToConvert
stringByTrimmingCharactersInSet:[NSCharacterSet
whitespaceAndNewlineCharacterSet]]
uppercaseString];

// String should be 6 or 8 characters
if (cString.length <
6)
{
return [UIColor
blackColor];
}

// strip 0X if it appears
if ([cString
hasPrefix:@"0X"])
{
cString = [cString substringFromIndex:2];
}
if ([cString
hasPrefix:@"#"])
{
cString = [cString substringFromIndex:1];
}
if (cString.length !=
6)
{
return [UIColor
blackColor];
}

// Separate into r, g, b substrings
NSRange range;
range.location =
0;
range.length =
2;
NSString *rString = [cString
substringWithRange:range];

range.location =
2;
NSString *gString = [cString
substringWithRange:range];

range.location =
4;
NSString *bString = [cString
substringWithRange:range];

// Scan values
unsigned
int r, g, b;
[[NSScanner
scannerWithString:rString]
scanHexInt:&r];
[[NSScanner
scannerWithString:gString]
scanHexInt:&g];
[[NSScanner
scannerWithString:bString]
scanHexInt:&b];
// OutLog(@"r=%f,g=%f,b=%f",(float)r,(float)g,(float)b);
return [UIColor
colorWithRed:((float) r /
255.0f)
green:((float) g /
255.0f)
blue:((float) b /
255.0f)
alpha:1.0f];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: