iOS 16进制颜色转RGB颜色

网上有很多牛逼的宏可以把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];
}

来看一下效果:

iOS 16进制颜色转RGB颜色_第1张图片
效果.gif

你可能感兴趣的:(iOS 16进制颜色转RGB颜色)