美文网首页
如何将十六进制颜色数值转换为UIColor呢?

如何将十六进制颜色数值转换为UIColor呢?

作者: seonhiu | 来源:发表于2016-08-03 09:11 被阅读48次
  1. 定义一个转换颜色的宏。
#define UIColorFromRGBA(rgbValue, alphaValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0x00FF00) >> 8))/255.0 blue:((float)(rgbValue & 0x0000FF))/255.0 alpha:alphaValue] 
  1. 随时随地使用
UICorlor *color = UIColorFromRGBA(0xFF0000, .75);

3.相互转换

+ (UIColor*) colorWithHex:(NSInteger)hexValue alpha:(CGFloat)alphaValue{
       return [UIColor colorWithRed:((float)((hexValue & 0xFF0000) >> 16))/255.0 green:((float)((hexValue & 0xFF00) >> 8))/255.0 blue:((float)(hexValue & 0xFF))/255.0 alpha:alphaValue];
}
+ (UIColor*) colorWithHex:(NSInteger)hexValue{ 
       return [UIColor colorWithHex:hexValue alpha:1.0];
} 
+ (NSString *) hexFromUIColor: (UIColor*) color { 
              if (CGColorGetNumberOfComponents(color.CGColor) < 4) {
                 const CGFloat *components =   CGColorGetComponents(color.CGColor); 
                 color = [UIColor colorWithRed:components[0] green:components[0] blue:components[0] alpha:components[1]]; 
              } 
              if (CGColorSpaceGetModel(CGColorGetColorSpace(color.CGColor)) != kCGColorSpaceModelRGB) {
                 return [NSString stringWithFormat:@"#FFFFFF"]; 
              } 
        return [NSString stringWithFormat:@"#XXX", (int)((CGColorGetComponents(color.CGColor))[0]*255.0), (int)((CGColorGetComponents(color.CGColor))[1]*255.0), (int)((CGColorGetComponents(color.CGColor))[2]*255.0)];
}

相关文章

网友评论

      本文标题:如何将十六进制颜色数值转换为UIColor呢?

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