[UIColor] RGB 값 사용하기 (RGB hexadecimal code사용)
애플에서 일반적으로 자주쓰는 Hex RGB 가 아니라, 각 RGB,A값을 0 에서 1.0 으로 설정하는 RGB 설정 메서드를 제공하므로 hex RGB 는 직접 관련 메서드를 만들어 사용해야 한다.
- (UIColor *) myRGBfromHex: (NSString *) code {
NSString *str = [[code stringByTrimmingCharactersInSet:[NSCharacterSetwhitespaceAndNewlineCharacterSet]] uppercaseString];
if ([str length] < 6) // 일단 6자 이하면 말이 안되니까 검은색을 리턴해주자.
return [UIColor blackColor];
// 0x로 시작하면 0x를 지워준다.
if ([str hasPrefix:@"0X"])
str = [str substringFromIndex:2];
// #으로 시작해도 #을 지워준다.
if ([str hasPrefix:@"#"])
str = [str substringFromIndex:1];
if ([str length] != 6) //그랫는데도 6자 이하면 이것도 이상하니 그냥 검은색을 리턴해주자.
return [UIColor blackColor];
NSRange range;
range.location = 0;
range.length = 2;
NSString *rcolorString = [str substringWithRange:range];
range.location = 2;
NSString *gcolorString = [str substringWithRange:range];
range.location = 4;
NSString *bcolorString = [str substringWithRange:range];
unsigned int red, green, blue;
[[NSScanner scannerWithString: rcolorString] scanHexInt:&red];
[[NSScanner scannerWithString: gcolorString] scanHexInt:&green];
[[NSScanner scannerWithString: bcolorString] scanHexInt:&blue];
return [UIColor colorWithRed:((float) red / 255.0f)
green:((float) green / 255.0f)
blue:((float) blue / 255.0f)
alpha:1.0f];
}