Jos*_*ght 13 hex objective-c uicolor ios
我有一个项目,我需要将UIColor的RGBA值作为8个字符的十六进制字符串存储在数据库中.例如,[UIColor blueColor]将是@"0000FFFF".我知道我可以像这样得到组件值:
CGFloat r,g,b,a;
[color getRed:&r green:&g blue: &b alpha: &a];
Run Code Online (Sandbox Code Playgroud)
但我不知道如何从这些值转到十六进制字符串.我已经看过很多关于如何走另一条路的帖子,但这个转换没有任何功能.
CSm*_*ith 22
首先将浮点数转换为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];
Run Code Online (Sandbox Code Playgroud)
Raf*_*fAl 14
在这里.返回具有颜色的十六进制值的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)];
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10760 次 |
最近记录: |