当前位置: 首页>编程语言>正文

iOS 16进制字符串转换颜色

大家可能经常遇到美工给你的颜色是16进制的自己要去计算或者想办法转换为RGB格式的。感觉是不是太繁琐又消耗精力。

今天给大家分享两个简单的方法

第一个方法这里仅限6位16进制字符串转换

-(UIColor *)colorWithString:(NSString *)string
{
    NSString *f1=[colorString substringWithRange:NSMakeRange(0, 2)];
    NSString *f2=[colorString substringWithRange:NSMakeRange(2, 2)];
    NSString *f3=[colorString substringWithRange:NSMakeRange(4, 2)];
    unsigned int red,green,blue;
    [[NSScanner scannerWithString:f1] scanHexInt:&red];
    [[NSScanner scannerWithString:f2] scanHexInt:&green];
    [[NSScanner scannerWithString:f3] scanHexInt:&blue];
    return [[UIColor alloc]initWithRed:red/255.f green:green/255.f blue:blue/255.f alpha:1.f];
}

使用方法

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [self colorWithHexString:@"000000"];
}

宏定义转换RGB方法。这个方法更加方便

#ifdef __OBJC__
    //RGB 颜色宏
    #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]

    //RGB 颜色宏及透明度
    #define UIColorFromRGBWithAlpha(rgbValue,a) [UIColor \
    colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
    green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
    blue:((float)(rgbValue & 0xFF))/255.0 alpha:a]
#endif

使用方法

- (void)viewDidLoad {
    [super viewDidLoad];
    // 设置颜色
    self.view.backgroundColor = UIColorFromRGB(0xFFFFFF);
    // 设置颜色及透明度
    self.view.backgroundColor = UIColorFromRGBWithAlpha(0xFFFFFF, 0.5);
}

好了 祝大家代码越来越优秀 !


https://www.xamrdz.com/lan/5ve2016625.html

相关文章: