iOSアプリ開発の逆引き辞典

iPhone/iPadで使えるアプリ開発のTipsをまとめてみました

カンマ区切りのRGB値をUIColorへ変換する

カンマ区切りのRGB値255,255,255やRGBA値を255,0,255,255からUIColorインスタンスを生成する方法を紹介します。

componentsSeparatedByString:メソッドを使って、区切り文字として,を使って文字列を分割します。分割された文字の数が3つであればRGBとして、4つであればRGBAとして

最後にUIColorクラスのクラスメソッドであるcolorWithRed:green:blue:alpha:メソッドを使ってUIColorインスタンスを返します。

+ (UIColor*)colorWithColumnString:(NSString*)rgba
{
    NSArray* array = [rgba componentsSeparatedByString:@","];

    CGFloat r = 0, g = 0, b = 0, a = 1.0;
    if ([array count] == 3) {
        r = [[array objectAtIndex:0] floatValue] / 255.0;
        g = [[array objectAtIndex:1] floatValue] / 255.0;
        b = [[array objectAtIndex:2] floatValue] / 255.0;
        a = 1.0;
    } else if ([array count] == 4) {
        r = [[array objectAtIndex:0] floatValue] / 255.0;
        g = [[array objectAtIndex:1] floatValue] / 255.0;
        b = [[array objectAtIndex:2] floatValue] / 255.0;
        a = [[array objectAtIndex:3] floatValue];
    }
    
    return [UIColor colorWithRed:r green:g blue:b alpha:a];
}

このメソッドは、UIColorクラスのカテゴリにしておくと便利かもしれません。