十六进制颜色转UIColor

来源:互联网 发布:淘宝店托管骗局 编辑:程序博客网 时间:2024/04/29 10:01

很多地方我们都使用16进制颜色,但iPhone使用的是UIColor对象,不直接支持16进制颜色,为此,需要我们手动将16进制颜色转换为UIColor

- (UIColor *)getColor:(NSString*)hexColor

{

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 colorWithRed:(float)(red/255.0f)green:(float)(green / 255.0f) blue:(float)(blue / 255.0f)alpha:1.0f];

}


[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;}