十六进制颜色转RGB颜色(含#开头)
来源:互联网 发布:手机上中文编程的软件 编辑:程序博客网 时间:2024/05/21 02:49
在做iOS开发的时候,会给控件添加颜色,一般都是RGB色值。如下
self.view.backgroundColor = [UIColor colorWithRed:235/255.0f green:236/255.0f blue:241/255.0f alpha:1];
美工大多数给的颜色往往都是十六进制的颜色。如:#784679这样 ,也会有 0Xe5e589 这样的,当然有时候美工也会给色值加色块(效果图其实都有,没必要给色块) 并且公司对这个不太看重的话,技术为了方便就可以直接用吸管在色块或者效果图吸取了,但是这样会有偏差,这样不推荐。你明白的。
对此写了两个方法,一个为宏,一个为封装。
先说为宏的方法:
define UIColorFromRGB(RGBValue) [UIColor \ colorWithRed:((float)((RGBValue & 0xFF0000) >> 16))/255.0 \ green:((float)((RGBValue & 0xFF00) >> 8))/255.0 \ blue:((float)(RGBValue & 0xFF))/255.0 alpha:1.0]用法:如 UIColorFromRGB(0Xe5e589)时如果使用这个宏来进行 # 开头色值,则需要把 # 写成0x,如 #784679 写成 0x784679。 这个我试了试,没有看出来偏差在哪(仅为看),但是是否没有一点偏差,就没有测试了。另一个封装的:
首先导入头文件 #import “UIColor+ColorValue.h”
UIColor+ColorValue.h 文件中
import@interface UIColor (ColorValue)+(UIColor *) colorWithRGBString: (NSString *)color;@end
UIColor+ColorValue.m文件中import "UIColor+ColorChange.h"@implementation UIColor (ColorChange)+(UIColor *) colorWithRGBString: (NSString *)color{NSString *RGBString = [[color stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];if ([RGBString length] < 6) {return [UIColor clearColor];}// 判断前缀为 0x 还是 #if ([RGBString hasPrefix:@"0X"])cString = [cString substringFromIndex:2];if ([RGBString hasPrefix:@"#"])cString = [cString substringFromIndex:1];if ([RGBString length] != 6)return [UIColor clearColor];// 六位数值中找到RGB对应位数并转换NSRange range;range.location = 0;range.length = 2;//取R、G、BNSString *rString = [RGBString substringWithRange:range];range.location = 2;NSString *gString = [RGBString substringWithRange:range];range.location = 4;NSString *bString = [RGBString substringWithRange:range];unsigned int r, g, b;[[NSScanner scannerWithString:rString] scanHexInt:&r];[[NSScanner scannerWithString:gString] scanHexInt:&g];[[NSScanner scannerWithString:bString] scanHexInt:&b];return [UIColor colorWithRed:((float) r / 255.0f) green:((float) g / 255.0f) blue:((float) b / 255.0f) alpha:1.0f];}@end
调用方法:self.view.backgroundColor = [UIColor colorWithRGBString:@"#784679"] 或者 [UIColor colorWithRGBString:@"0x784679"]。
这个方法就不存在是否 0x 开头还是 # 开头了。
今天突然感觉到比较闲,刚好顺便自己写的demo中有这个,顺便写出来。后面会慢慢整理一些平时开发中会经常用到的方法并写出来,供各位参考。如有发现这篇文章有不足或错误之处请指出来并共同探讨。有问题请留言。谢谢
阅读全文
0 0
- 十六进制颜色转RGB颜色(含#开头)
- iOS 一句代码轻松实现十六进制颜色(#开头)转RGB颜色
- iOS开发-轻松实现十六进制颜色(#开头)转RGB颜色_Swift/OC
- css颜色 RGB转十六进制
- iOS 十六进制颜色转RGB颜色
- iOS中(以#开头)十六进制的颜色转换为UIColor(RGB)
- RGB颜色转换十六进制颜色
- 十六进制颜色改为RGB颜色,RGB颜色转为十六进制
- 十六进制颜色改为RGB颜色,RGB颜色转为十六进制
- PHP RGB颜色和十六进制颜色互转
- html,十六进制符号,rgb,颜色
- 十六进制颜色与RGB颜色对照表
- RGB颜色值与十六进制颜色码
- CSS关于颜色使用的理解(单词、RGB、十六进制)
- 十六进制颜色表(转)
- 十六进制RGB颜色名称对照表
- 十六进制颜色转换RGB对照表
- 十六进制的颜色值转成RGB UIColor
- 浅谈MySQL中优化sql语句查询常用的30种方法
- 如何用深度学习来写歌词(神经网络实现)
- EL表达式不能使用
- [主席树维护HASH] Codechef. Cloning
- c#连接Oracle11g数据库(无需安装客户端)
- 十六进制颜色转RGB颜色(含#开头)
- pyviz安装遇到的几个问题
- lintcode链表倒数第n个节点
- 调整导航条上leftBarButtonItem和rightBarButtonItem与屏幕边界 或者与titleView 的间距
- QTP自动化
- 计算机中的2进制,8进制,16进制
- 文件上传类型总结
- git使用介绍
- Max Factor-求几个数中有最大质因数的数