字符串颜色转成UIColor

来源:互联网 发布:淘宝几毛钱的东西 编辑:程序博客网 时间:2024/06/05 09:45

+ (UIColor *)colorWithHexString:(NSString *)hexString{    NSString *colorString = [[hexString stringByReplacingOccurrencesOfString: @"#" withString: @""] uppercaseString];    CGFloat alpha, red, blue, green;    switch ([colorString length]) {        case 3: // #RGB            alpha = 1.0f;            red   = [self colorComponentFrom: colorString start: 0 length: 1];            green = [self colorComponentFrom: colorString start: 1 length: 1];            blue  = [self colorComponentFrom: colorString start: 2 length: 1];            break;        case 4: // #ARGB            alpha = [self colorComponentFrom: colorString start: 0 length: 1];            red   = [self colorComponentFrom: colorString start: 1 length: 1];            green = [self colorComponentFrom: colorString start: 2 length: 1];            blue  = [self colorComponentFrom: colorString start: 3 length: 1];            break;        case 6: // #RRGGBB            alpha = 1.0f;            red   = [self colorComponentFrom: colorString start: 0 length: 2];            green = [self colorComponentFrom: colorString start: 2 length: 2];            blue  = [self colorComponentFrom: colorString start: 4 length: 2];            break;        case 8: // #AARRGGBB            alpha = [self colorComponentFrom: colorString start: 0 length: 2];            red   = [self colorComponentFrom: colorString start: 2 length: 2];            green = [self colorComponentFrom: colorString start: 4 length: 2];            blue  = [self colorComponentFrom: colorString start: 6 length: 2];            break;        default:            return nil;    }    return [UIColor colorWithRed: red green: green blue: blue alpha: alpha];}+ (CGFloat) colorComponentFrom: (NSString *) string start: (NSUInteger) start length: (NSUInteger) length {    NSString *substring = [string substringWithRange: NSMakeRange(start, length)];    NSString *fullHex = length == 2 ? substring : [NSString stringWithFormat: @"%@%@", substring, substring];    unsigned hexComponent;    [[NSScanner scannerWithString: fullHex] scanHexInt: &hexComponent];    return hexComponent / 255.0;}


0 0
原创粉丝点击