+ (UIColor*)colorFromHex:(NSString*)hexString { // https://github.com/timd/UIColor-HexValues hexString = [hexString stringByReplacingOccurrencesOfString:@"#" withString:@""]; if ([hexString length] == 3) { hexString = [NSString stringWithFormat:@"%@%@%@%@%@%@", [hexString substringWithRange:NSMakeRange(0, 1)],[hexString substringWithRange:NSMakeRange(0, 1)], [hexString substringWithRange:NSMakeRange(1, 1)],[hexString substringWithRange:NSMakeRange(1, 1)], [hexString substringWithRange:NSMakeRange(2, 1)],[hexString substringWithRange:NSMakeRange(2, 1)]]; } if ([hexString length] != 6) { return nil; } // Brutal and not-very elegant test for non hex-numeric characters NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[^a-fA-F|0-9]" options:0 error:NULL]; NSUInteger match = [regex numberOfMatchesInString:hexString options:NSMatchingReportCompletion range:NSMakeRange(0, [hexString length])]; if (match != 0) { return nil; } NSRange rRange = NSMakeRange(0, 2); NSString *rComponent = [hexString substringWithRange:rRange]; NSUInteger rVal = 0; NSScanner *rScanner = [NSScanner scannerWithString:rComponent]; [rScanner scanHexInt:(unsigned int *)&rVal]; float rRetVal = (float)rVal / 254; NSRange gRange = NSMakeRange(2, 2); NSString *gComponent = [hexString substringWithRange:gRange]; NSUInteger gVal = 0; NSScanner *gScanner = [NSScanner scannerWithString:gComponent]; [gScanner scanHexInt:(unsigned int *)&gVal]; float gRetVal = (float)gVal / 254; NSRange bRange = NSMakeRange(4, 2); NSString *bComponent = [hexString substringWithRange:bRange]; NSUInteger bVal = 0; NSScanner *bScanner = [NSScanner scannerWithString:bComponent]; [bScanner scanHexInt:(unsigned int *)&bVal]; float bRetVal = (float)bVal / 254; return [UIColor colorWithRed:rRetVal green:gRetVal blue:bRetVal alpha:1.0f]; }
Wednesday, July 27, 2016
[iOS] NSString to hex value
Subscribe to:
Post Comments (Atom)
[ROM] Samsung S7 Stock Firmware BRI (Taiwan台灣)
Latest ROM: G930FXXU1DQEU Download: https://kfhost.net/tpl/firmwares.php?record=B7E6DE774E3811E7963AFA163EE8F90B Reference: http://...
-
In Android 4.1 (API 16) and above, MediaCodec is introduced by Android. By using MediaCodec, we can easily decode video without using Androi...
-
#include <sstream> #include <assert.h> // include in android platform-9 or newer #include <android/asset_manager.h> #inclu...
-
Latest ROM: G930FXXU1DQEU Download: https://kfhost.net/tpl/firmwares.php?record=B7E6DE774E3811E7963AFA163EE8F90B Reference: http://...
No comments:
Post a Comment