The following is a simple method that will convert a hexadecimal color (e.g. # ffcc88) into an equivalent uicolor object.
- (UIColor *) colorForHex:(NSString *)hexColor {hexColor = [[hexColor stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];// String should be 6 or 7 characters if it includes '#'if ([hexColor length] < 6)return [UIColor blackColor];// strip # if it appearsif ([hexColor hasPrefix:@"#"])hexColor = [cString substringFromIndex:1];// if the value isn't 6 characters at this point return// the color blackif ([hexColor length] != 6)return [UIColor blackColor];// Separate into r, g, b substringsNSRange range;range.location = 0;range.length = 2;NSString *rString = [hexColor substringWithRange:range];range.location = 2;NSString *gString = [hexColor substringWithRange:range];range.location = 4;NSString *bString = [hexColor substringWithRange:range];// Scan valuesunsigned 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];}
Notice that we had to first separate our the hex values for the red, green, and blue components first as substrings and then apply the nsdue to those substrings.