But most of developers have one handicap: We don't know about graphic design, color combination and logo designs, although some customer don't take care about that, so we have to work with a designer which makes all that graphic work. In most cases the designer give us the colors in RGB mode (0-255), so we have to convert them to "Mac RGB" (0 to 1) dividing each value between 255. But, what happends when the designer give us the colors on hexadecimal (HTML) coding?.
Today's code snippet tries to solve that with this little function that you can use to convert from hexadecimal to "MAC RGB" whith only a call.
+ (UIColor *) colorWithHexString: (NSString *) stringToConvert
{
NSString *cString = [[stringToConvert stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];
// String should be 6 or 8 characters
if ([cString length] < 6) return DEFAULT_VOID_COLOR; // strip 0X if it appears if ([cString hasPrefix:@"0X"]) cString = [cString substringFromIndex:2]; if ([cString length] != 6) return DEFAULT_VOID_COLOR; // Separate into r, g, b substrings NSRange range; range.location = 0; range.length = 2; NSString *rString = [cString substringWithRange:range]; range.location = 2; NSString *gString = [cString substringWithRange:range]; range.location = 4; NSString *bString = [cString substringWithRange:range]; // Scan values unsigned int r, g, b; [[NSScanner scannerWithString:rString] scanHexInt:&r]; [[NSScanner scannerWithString:gString] scanHexInt:&g]; [[NSScanner scannerWithString:bString] scanHexInt:&b]; return [UIColor colorWithRed:((float) r / 255.0f) green:((float) g / 255.0f) blue:((float) b / 255.0f) alpha:1.0f]; }
I stole this piece of code from this Ars Tecnica's article where you could find more about UIColor conversions in.
Enjoy it!
No comments:
Post a Comment