16进制颜色转普通RGB

做开发的会遇到很多时候UI给到的是16进制的颜色  然而很多时候我们需要把它转换成适合我们方法的RGB参数  当然通过网页转换也可以达到目的  

但是我现在选择写一个分类来解决  一劳永逸~


 

 

1、首先说下十六进制和普通RGB的区别

(1)十六进制颜色   顾名思义他的RGB颜色参数是十六进制的 ;

(2)普通RGB       相对十六进制来说它则是十进制的 ;    

2、算法  

 

 1 //    判断是否符合
 2     if ([stringValue hasPrefix:@"#"]) {
 3         stringValue = [stringValue substringFromIndex:1];
 4     }
 5     
 6     
 7     if ([stringValue hasPrefix:@"0X"] || [stringValue hasPrefix:@"0x"]) {
 8         stringValue = [stringValue substringFromIndex:2];
 9     }
10     
11 
12 //    定义接受参数
13     unsigned int redPrameter = 0;
14     unsigned int greenPramenter = 0;
15     unsigned int bluePrameter = 0;
16 
17     for (NSInteger i = 0; i < 3; i++) {
18         switch (i) {
19             case 0:
20             {
21                 NSString *temString = [stringValue substringWithRange:NSMakeRange(0, 2)];
22                 
23                 [[NSScanner scannerWithString:temString] scanHexInt:&redPrameter];
24                 
25             }
26                 break;
27             case 1:
28             {
29                 NSString *temString = [stringValue substringWithRange:NSMakeRange(3, 2)];
30                 [[NSScanner scannerWithString:temString] scanHexInt:&greenPramenter];
31             }
32                 break;
33                 
34             default:
35             {
36                 NSString *temString = [stringValue substringWithRange:NSMakeRange(4, 2)];
37                 [[NSScanner scannerWithString:temString] scanHexInt:&bluePrameter];
38             }
39                 break;
40         }    }
41     
42     UIColor *detainColor  = [UIColor colorWithRed:redPrameter/255.0f green:greenPramenter/255.0f blue:bluePrameter/255.0f alpha:1.0f];
43     

 

 

3、点击查看项目地址:

码云 : https://git.oschina.net/hellocoder/exchangehexadecimalcolortorgb.git

GitHub : https://github.com/BTig/changeHexColorToNormalRGB.git  

 

posted @ 2017-06-23 11:02  抠得儿  阅读(457)  评论(0编辑  收藏  举报