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でカラーを指定して反映させたい場合等は便利です。