페이지

2017년 3월 30일 목요일

iOS get UIColor from HexCode String


+ (UIColor *)colorWithHexCode:(NSString *)hexCode {
    NSString *arrangedCode = [hexCode stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
    arrangedCode = arrangedCode.uppercaseString;
    if (arrangedCode.length < 6) {
        return [UIColor blackColor];
    }
    NSArray *deletingCharacters = @[@"0X", @"#"];
    for (NSString *deletingCharacter in deletingCharacters) {
        if ([arrangedCode hasPrefix:deletingCharacter]) {
            arrangedCode = [arrangedCode substringFromIndex:deletingCharacter.length];
            break;
        }
    }
    if (arrangedCode.length != 6) {
        return [UIColor blackColor];
    }
    NSString *redCode = [arrangedCode substringWithRange:NSMakeRange(0, 2)];
    NSString *greenCode = [arrangedCode substringWithRange:NSMakeRange(2, 2)];
    NSString *blueCode = [arrangedCode substringWithRange:NSMakeRange(4, 2)];
    unsigned int red, green, blue = 0;
    [[NSScanner scannerWithString:redCode] scanHexInt:&red];
    [[NSScanner scannerWithString:greenCode] scanHexInt:&green];
    [[NSScanner scannerWithString:blueCode] scanHexInt:&blue];
    return [UIColor colorWithRed:(red / 255.0f)
                           green:(green / 255.0f)
                            blue:(blue / 255.0f)
                           alpha:1.0f];
}

댓글 없음:

댓글 쓰기