如何将UIColor转换为hexstring?

我有一个项目,我需要将UIColor的RGBA值作为8个字符的hexstring存储在数据库中。 例如,[UIColor blueColor]将是@“0000FFFF”。 我知道我可以得到这样的组件值:

CGFloat r,g,b,a; [color getRed:&r green:&g blue: &b alpha: &a]; 

但我不知道如何从这些值去hexstring。 我已经看到了很多关于如何去其他方式的post,但没有任何function的转换。

首先将你的浮点数转换为int值,然后用stringWithFormat

  int r,g,b,a; r = (int)(255.0 * rFloat); g = (int)(255.0 * gFloat); b = (int)(255.0 * bFloat); a = (int)(255.0 * aFloat); [NSString stringWithFormat:@"%02x%02x%02x%02x", r, g, b, a]; 

在这里。 返回一个具有hex颜色值的NSString (例如ffa5678 )。

 - (NSString *)hexStringFromColor:(UIColor *)color { const CGFloat *components = CGColorGetComponents(color.CGColor); CGFloat r = components[0]; CGFloat g = components[1]; CGFloat b = components[2]; return [NSString stringWithFormat:@"%02lX%02lX%02lX", lroundf(r * 255), lroundf(g * 255), lroundf(b * 255)]; }