我有来自url数据的颜色值就像这样,“#ff33cc” . 如何将此值转换为UIColor?我正在尝试使用以下代码行 . 我没有得到baseColor1的值 . 看起来我应该把那个捣蛋 . 还有另一种方法吗?
NSScanner *scanner2 = [NSScanner scannerWithString:@"#ff33cc"];
int baseColor1;
[scanner2 scanHexInt:&baseColor1];
CGFloat red = (baseColor1 & 0xFF0000);
[UIColor colorWithRed:red ...
5 回答
你很接近,但是colorWithRed:green:blue:alpha:期望值从0.0到1.0,所以你需要向右移位并除以255.0f:
EDIT - 另外NSScanner 's scanHexInt will skip past 0x in front of a hex string, but I don' t认为它将跳过十六进制字符串前面的#字符 . 您可以添加此行来处理:
我添加了一个字符串替换,因此它接受带有或不带
#
的十六进制字符串可能的完整代码:
我已经创建了一个在以下情况下工作的函数: - 1)有或没有#2)3和6个字符的长值#000以及#000000 3)如果额外的数字超过6,它会忽略额外的数字
请参考此链接将十六进制字符串转换为目标c代码
http://www.touch-code-magazine.com/web-color-to-uicolor-convertor
Swift
Obj-C