I have a RGB hex code such as #ffffff as NSString and want to convert it to a UIColor. Is there an easy way to do this?
, I use 2 different functions:
zero SKScanHexColor (NSString * hexString, float * red, float * green, float * blue, float * alpha) {NSString * cleanString = [Hexstress string ByReplacingOccurrencesOfString: @ "#" withString: @ ""]; If ([clean string length] == 3) {clean string = [NSString stringWithFormat: @ "% @% @% @% @% @% @", [cleanString substringWithRange: NSMakeRange (0, 1)], [CleanString substringWithRange : NSMakeRange (1, 1)], [Clean string substringWithRange: NSMakeRange (1, 1)], [cleanString substringWithRange: NSMakeRange (2, 1)], [cleanString substringWithRange: NSMakeRange (2, 1)]]; } If ([clean string length] == 6) {clean string = [string string stringbapping string: @ "FF"]; Unsigned int baseValue; [[NSKKner Scanner andString: Clean String] ScanHexInte & amp; Basewell]; If (red) {* red = ((baseValue> & gt; 24) & amp; 0xFF) /255.0f; } If (green) {* green = ((base value >> gt; 16) & amp; 0xFF) /255.0f; } If (blue) {* blue = ((base value> 8) & amp; 0xFF) /255.0f; } If (alpha) {* alpha = ((base value> gt; & gt; & amp; 0xFF) /255.0f; }}
And then I use it like this:
UIColor * SKColorFromHexString (NSString * hexString) {float red, green, blue, alpha ; SKScanHexColor (hexstring, & amp; red, and green, & blue, & amp; alpha); Return [UIColor colorWithRed: red green: green blue: blue alpha: alpha]; }
If you want to use it as a UIColor
category, then it is a matter of changing some lines:
+ (UIColor *) colorFromHexString: (NSString *) HexString {NSString * cleanString = [HexString string bayer replaying occurenceoffstring: @ "#" string: @ ""]; If ([clean string length] == 3) {clean string = [NSString stringWithFormat: @ "% @% @% @% @% @% @", [cleanString substringWithRange: NSMakeRange (0, 1)], [CleanString substringWithRange : NSMakeRange (1, 1)], [Clean string substringWithRange: NSMakeRange (1, 1)], [cleanString substringWithRange: NSMakeRange (2, 1)], [cleanString substringWithRange: NSMakeRange (2, 1)]]; } If ([clean string length] == 6) {clean string = [string string stringbapping string: @ "FF"]; Unsigned int baseValue; [[NSKKner Scanner andString: Clean String] ScanHexInte & amp; Basewell]; Float red = ((baseValue> & gt; 24) & amp; 0xFF) /255.0f; Float green = ((base value> gt; 16) & amp; 0xFF) /255.0f; Float blue = ((baseValue> 8) & amp; 0xFF) /255.0f; Float alpha = ((baseValue> gt; & gt; 0) & amp; 0xFF) /255.0f; Return [UIColor colorWithRed: red green: green blue: blue alpha: alpha]; }
This will handle strings such as "#abc", "# abcdef31" etc.
Comments
Post a Comment