美文网首页
iOS 16进制颜色转RGB颜色

iOS 16进制颜色转RGB颜色

作者: RBNote | 来源:发表于2017-04-25 19:11 被阅读60次

网上有很多牛逼的宏可以把16进制颜色转为RGB颜色,参考刀哥讲的也来模仿一个, 同时练习一下markDown语法。``` 三个这东西可以包裹一大段代码块。

主要用到了用到了位运算(&)和左移(<<)右移(>>)运算
给UIColor新建一个Category

这里是方法申明部分

@interface UIColor (Hex)
/**
 16进制颜色转为RGB颜色

 @param hexValue 32位无符号长整型
 @return UIColor 的实例对象
 */
+ (instancetype)rb_convertToRGBColorWithHexValue:(uint32_t) hexValue;

@end

方法的实现部分:

@implementation UIColor (Hex)
+ (instancetype)rb_convertToRGBColorWithHexValue:(uint32_t)hexValue {
    // 0xaaFF66  1010 1010 1111 1111 0110 0110
    // 0xFF0000  1111 1111 0000 0000 0000 0000
//    &位运算结果  :& 都为1则值为1 否则为0
    // 0xFF0000  1111 1111 0000 0000 0000 0000
//    >>16 右移运算结果  : >> 右移运算,各二进制数右移n位,
    // 0x0000FF
    
    CGFloat red = (hexValue & 0xFF0000) >> 16;
    CGFloat green = (hexValue & 0x00FF00) >> 8;
    CGFloat blue = (hexValue & 0x0000FF);
    
    return [UIColor colorWithRed:red / 255.0  green:green / 255.0  blue:blue / 255.0 alpha:1.0];
}

来看一下效果:

效果.gif

相关文章

网友评论

      本文标题:iOS 16进制颜色转RGB颜色

      本文链接:https://www.haomeiwen.com/subject/ddfbzttx.html