16進をUIColorに変換

16進のカラーをUIColorに変換します。
colorWithRedはautoreleaseで確保して返しますので使い終わると解放されます。

コード

-(UIColor*) hexToUIColor:(NSString *)hex alpha:(CGFloat)a{
	NSScanner *colorScanner = [NSScanner scannerWithString:hex];
	unsigned int color;
	[colorScanner scanHexInt:&color];
	CGFloat r = ((color & 0xFF0000) >> 16)/255.0f;
	CGFloat g = ((color & 0x00FF00) >> 8) /255.0f;
	CGFloat b =  (color & 0x0000FF) /255.0f;
	//NSLog(@"HEX to RGB >> r:%f g:%f b:%f a:%f\n",r,g,b,a);
	return [UIColor colorWithRed:r green:g blue:b alpha:a];
}

使い方

背景カラーを16進で指定したい場合、クラス内にメソッドとして上記を配置し、下記のように呼び出します。

  self.backgroundColor = [self hexToUIColor:@"FF0000" alpha:1.0];

上記の例だとあまり意味がありませんが、例えばxmlでカラーを指定して反映させたい場合等は便利です。