1. 程式人生 > 實用技巧 >IOS:16進位制程式碼轉UIColor物件

IOS:16進位制程式碼轉UIColor物件

之前有寫過一個color物件轉16進位制的,後來在專案中發現調整亮度,還是需要獲取當前顏色的儲存值。。

一個是當前裝置的顏色,一個是顏色拾取圖上的顏色,存下來後轉為color物件再分解成飽和度,亮度等等……

下面奉上16進位制轉color物件的方法

 1 //把16進位制轉為UIcolor物件的程式碼
 2 - (UIColor *) colorWithHexString: (NSString *) stringToConvert
 3 {
 4     NSString *cString = [[stringToConvert stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]uppercaseString];//
字串處理 5 //例子,stringToConvert #ffffff 6 if ([cString length] <6) 7 return [UIColor clearColor];//如果非十六進位制,返回白色 8 if ([cString hasPrefix:@"#"]) 9 cString = [cString substringFromIndex:1];//去掉頭 10 if ([cString length] !=6)//去頭非十六進位制,返回白色 11 return [UIColor clearColor];
12 //分別取RGB的值 13 NSRange range; 14 range.location =0; 15 range.length =2; 16 NSString *rString = [cString substringWithRange:range]; 17 range.location =2; 18 NSString *gString = [cString substringWithRange:range]; 19 range.location =4; 20 NSString *bString = [cString substringWithRange:range];
21 unsigned int r, g, b; 22 //NSScanner把掃描出的制定的字串轉換成Int型別 23 [[NSScanner scannerWithString:rString] scanHexInt:&r]; 24 [[NSScanner scannerWithString:gString] scanHexInt:&g]; 25 [[NSScanner scannerWithString:bString] scanHexInt:&b]; 26 //轉換為UIColor 27 return [UIColor colorWithRed:((float) r /255.0f) 28 green:((float) g /255.0f) 29 blue:((float) b /255.0f) 30 alpha:1.0f]; 31 32 }