16進数の設定方法が、UIColor には実装されていない(?)ようなので、カスタムで作る必要があります。 例えば、FF0000AA(RGBA)を UIColor に変更するには、 (1) 文字列をカラーとアルファに分割 (2) 各文字列の16進数表示を、NSScanner を利用して int に変更する (3) int 値を、R, G, B, A それぞれに小数に変換(255.0f で割る)する (4) UIColor を作成する
16 進数の文字列 (NSString) を数値型 (int) に変換する を参考にしました。
-(UIColor*) hexToUIColor:(NSString *)hex
{
NSRange colorRange = NSMakeRange(0, 6);
NSRange alphaRange = NSMakeRange(6, 2);
NSString *colorString = [hex substringWithRange:colorRange];
NSString *alphaString = [hex substringWithRange:alphaRange];
NSScanner *colorScanner = [NSScanner scannerWithString:colorString];
NSScanner *alphaScanner = [NSScanner scannerWithString:alphaString];
unsigned int color;
unsigned int alpha;
[colorScanner scanHexInt:&color];
[alphaScanner scanHexInt:&alpha];
CGFloat r = ((color & 0xFF0000) >> 16)/255.0f;
CGFloat g = ((color & 0x00FF00) >> 8) /255.0f;
CGFloat b = (color & 0x0000FF) /255.0f;
CGFloat a = alpha /255.0f;
return [UIColor colorWithRed:r green:g blue:b alpha:a];
}
わざわざ文字列分割しなくても、0xFF000000 >> 24 みたくしても良いかとは思いますが。