XZ_iOS之UIColor的RGB数值转换方法
来源:互联网 发布:坎昆离墨西哥城源码 编辑:程序博客网 时间:2024/05/21 12:44
美工给的颜色基本上都是16进制表示的,系统没有方法可以直接转换成RGB的色值,所以,我写了一个UIColor的分类
思路:将美工给的16进制的颜色转换成2进制,然后分别与红色(0xFF0000)、绿色(0x00FF00)、蓝色(0x0000FF)的二进制进行按位与运算,然后将不需要的位数通过未运算去掉,比如,绿色的后两位不需要,所以向右位置2个16进制位,即8个二进制位,红色同理;
UIColor+Extension.h中:
#import<UIKit/UIKit.h>
@interface UIColor (Extension)
//根据无符号的32位整数转换成对应的 rgb 颜色,
//无符号32位整数的表示方法:0xFF0000 一个0表示4位 4、8、16、32
// hex return UIColor
+ (instancetype)xz_colorWithHex:(u_int32_t)hex;
@end
UIColor+Extension.m
#import"UIColor+Extension.h"
@implementation UIColor (Extension)
+ (instancetype)xz_colorWithHex:(u_int32_t)hex {
// 0xFFAA99
// 0xFF0000
// =>0xFF0000后面四个0换成2进制就是 0000 0000 0000 0000,所以位移16位
int red = (hex &0xFF0000) >>16;
// 0xFFAA99 -> 0x1111 1111 AA 1001 1001
// 0x00FF00 ->
//与之后的结果:=> 0x00AA00后面两个0不需要,所以位移8位后是 0x0000AA,前面全是0,忽略即可
int green = (hex &0x00FF00) >>8;
//后两位是蓝色
// 0xFFAA99 -> 0x1111 1111 AA 1001 1001
// 0x0000FF -> 0x0000 0000 00 1111 1111
//按位与 0与1是0 1与1是1原来是几还是几
int blue = hex &0x0000FF;
return [UIColorcolorWithRed:red /255.0green:green /255.0blue:blue /255.0alpha:1.0];
}
@end
注意:分类的方法前面加一个前缀,为了避免与系统的方法冲突
阅读全文
0 0
- XZ_iOS之UIColor的RGB数值转换方法
- UIColor获得RGB颜色分量的方法
- 将普通的16进制颜色数值转换成UIColor表示形式的处理方法
- XZ_iOS之转换坐标系
- 得到UIColor的RGB值
- XZ_iOS之时间戳和时间字符串的一个转换
- UIColor:RGB和HSV互相转换
- 将UIColor转换为RGB值
- 将UIColor转换为RGB值
- 将RGB颜色值转换为UIColor
- //将UIColor转换为RGB值
- 将UIColor转换为RGB值
- UIColor:RGB和HSV互相转换
- 将UIColor转换为RGB值
- 将UIColor转换为RGB值
- iphone-将UIColor转换成RGB
- UIColor之十六进制转换
- XZ_iOS之UITableView的代理方法的执行顺序
- 前端影响性能的细节
- 一个mybatis配置文件的例子
- JSP 表达式
- 剑指Offer——(41)和为S的两个数字
- js中的function(){}不好使
- XZ_iOS之UIColor的RGB数值转换方法
- JAVA 图片工具类 包含图片切割,水印
- python核心编程v2.0 第7章习题答案(下)
- poj1163
- POJ 3186 Treats for the Cows(区间dp)
- 168. Excel Sheet Column Title
- webpack 压缩图片
- Linux Bash运算符
- Git学习总结(18)——让你成为Git和GitHub大神的20个技巧