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