From 38268f2073e05a3fa5740f53f62f118060cfbb3b Mon Sep 17 00:00:00 2001 From: Jorge Osorio Date: Thu, 13 Mar 2014 11:44:27 -0500 Subject: [PATCH] Add alpha channels to hexColors --- Colours.h | 2 ++ Colours.m | 14 +++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Colours.h b/Colours.h index 72fb2a5..e186b30 100755 --- a/Colours.h +++ b/Colours.h @@ -89,6 +89,8 @@ typedef NS_ENUM(NSInteger, ColorDistance) { */ + (instancetype)colorFromHexString:(NSString *)hexString; ++ (instancetype)colorFromHexString:(NSString *)hexString withAlpha:(CGFloat)alpha; + /** Creates a Color from an array of 4 NSNumbers (r,g,b,a) @param rgbaArray 4 NSNumbers for rgba between 0 - 1 diff --git a/Colours.m b/Colours.m index e370625..23b8036 100755 --- a/Colours.m +++ b/Colours.m @@ -49,6 +49,16 @@ + (instancetype)colorFromHexString:(NSString *)hexString return [[self class] colorWithR:((rgbValue & 0xFF0000) >> 16) G:((rgbValue & 0xFF00) >> 8) B:(rgbValue & 0xFF) A:1.0]; } ++ (instancetype)colorFromHexString:(NSString *)hexString withAlpha:(CGFloat)alpha +{ + unsigned rgbValue = 0; + hexString = [hexString stringByReplacingOccurrencesOfString:@"#" withString:@""]; + NSScanner *scanner = [NSScanner scannerWithString:hexString]; + [scanner scanHexInt:&rgbValue]; + + return [[self class] colorWithR:((rgbValue & 0xFF0000) >> 16) G:((rgbValue & 0xFF00) >> 8) B:(rgbValue & 0xFF) A:alpha]; +} + #pragma mark - Hex from Color - (NSString *)hexString @@ -57,11 +67,13 @@ - (NSString *)hexString int r = [colorArray[0] floatValue] * 255; int g = [colorArray[1] floatValue] * 255; int b = [colorArray[2] floatValue] * 255; + int a = [colorArray[3] floatValue] * 255; NSString *red = [NSString stringWithFormat:@"%02x", r]; NSString *green = [NSString stringWithFormat:@"%02x", g]; NSString *blue = [NSString stringWithFormat:@"%02x", b]; + NSString *alpha = [NSString stringWithFormat:@"%02x", a]; - return [NSString stringWithFormat:@"#%@%@%@", red, green, blue]; + return [NSString stringWithFormat:@"#%@%@%@%@", red, green, blue, alpha]; }