为了账号安全,请及时绑定邮箱和手机立即绑定

如何从十六进制字符串创建UIColor?

如何从十六进制字符串创建UIColor?

iOS
慕森卡 2019-07-22 14:44:09
如何从十六进制字符串创建UIColor?如何创建UIColor从十六进制字符串格式,如#00FF00?
查看完整描述

3 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

我发现最简单的方法就是用宏。只要将其包含在标题中,它就可以在整个项目中使用。

#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]

带有十六进制值的uicolor宏

也是此代码的格式化版本:

#define UIColorFromRGB(rgbValue) \[UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
                green:((float)((rgbValue & 0x00FF00) >>  8))/255.0 \
                 blue:((float)((rgbValue & 0x0000FF) >>  0))/255.0 \
                alpha:1.0]

用法:

label.textColor = UIColorFromRGB(0xBC1128);


查看完整回答
反对 回复 2019-07-22
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

简明的解决办法:

// Assumes input like "#00FF00" (#RRGGBB).+ (UIColor *)colorFromHexString:(NSString *)hexString {
    unsigned rgbValue = 0;
    NSScanner *scanner = [NSScanner scannerWithString:hexString];
    [scanner setScanLocation:1]; // bypass '#' character
    [scanner scanHexInt:&rgbValue];
    return [UIColor colorWithRed:((rgbValue & 0xFF0000) >> 16)/255.0 green:((rgbValue & 0xFF00) >> 8)/255.0 blue:(rgbValue & 0xFF)/255.0 alpha:1.0];}


查看完整回答
反对 回复 2019-07-22
  • 3 回答
  • 0 关注
  • 539 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信