カンマ区切りの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クラスのカテゴリにしておくと便利かもしれません。