很多地方我们都使用16进制颜色,但iPhone使用的是UIColor对象,不直接支持16进制颜色,为此,需要我们手动将16进制颜色转换为UIColor。
- (UIColor
{
unsigned int red,green,blue;
NSRange range;
range.length = 2;
range.location = 0;
[[NSScanner scannerWithString:[hexColor substringWithRange:range]]scanHexInt:&red];
range.location = 2;
[[NSScanner scannerWithString:[hexColor substringWithRange:range]]scanHexInt:&green];
range.location = 4;
[[NSScanner scannerWithString:[hexColor substringWithRange:range]]scanHexInt:&blue];
return [UIColor
}
[self.view setBackgroundColor:[self getColor:@"FF0000"]];
一个面试题:使用内联函数把@“#ff3344”转成UIColor
- - (UIColor *) stringTOColor:(NSString *)str
- {
- if (!str || [str isEqualToString:@""]) {
- return nil;
- }
- unsigned red,green,blue;
- NSRange range;
- range.length = 2;
- range.location = 1;
- [[NSScanner scannerWithString:[str substringWithRange:range]] scanHexInt:&red];
- range.location = 3;
- [[NSScanner scannerWithString:[str substringWithRange:range]] scanHexInt:&green];
- range.location = 5;
- [[NSScanner scannerWithString:[str substringWithRange:range]] scanHexInt:&blue];
- UIColor *color= [UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:1];
- return color;
- }