hachinoBlog

hachinobuのエンジニアライフ

16進数のカラーコードをもとにUIColorを作成する

背景

カラーコードは大体16進数表記なのでiOSのUIcolorを作る際に16進数表記のカラーコードを10進数に変換してUIColorを作成したかったので調べた。

やり方

下記メソッドをUIColorのカテゴリに追加した。

+ (UIColor *)colorWithHexString:(NSString *)hex
{
    //先頭に#がついていた場合は#を削除
    if ([hex hasPrefix:@"#"]) {
        hex = [hex substringFromIndex:1];
    }

    unsigned int rgb[3];
    for (int i = 0; i < 3; i++) {
        NSString *component = [hex substringWithRange:NSMakeRange(i * 2, 2)];
        NSScanner *scanner = [NSScanner scannerWithString:component];
        [scanner scanHexInt:&rgb[i]];
    }
    return [self colorWithRed:rgb[0]/255.0 green:rgb[1]/255.0 blue:rgb[2]/255.0 alpha:1.0f];
}

これで16進数のカラーコードに対応したUIColorを取得することができる。