如何将RGB十六进制字符串转换为目标c中的UIColor?

我有来自url数据的颜色值就是这样,“#ff33cc”.如何将此值转换为UIColor?我正在尝试使用以下代码行.我没有获得baseColor1的值.看起来我应该把那个磅的字符关掉.还有另一种做法吗?
NSScanner *scanner2 = [NSScanner scannerWithString:@"#ff33cc"];
int baseColor1;
[scanner2 scanHexInt:&baseColor1]; 
CGFloat red = (baseColor1 & 0xFF0000);
[UIColor colorWithRed:red ...

解决方法

你很近,但是 colorWithRed:green:blue:alpha:希望值范围从0.0到1.0,所以你需要将位移动255.0f:
CGFloat red   = ((baseColor1 & 0xFF0000) >> 16) / 255.0f;
CGFloat green = ((baseColor1 & 0x00FF00) >>  8) / 255.0f;
CGFloat blue  =  (baseColor1 & 0x0000FF) / 255.0f;

编辑 – NSScanner的scanHexInt也将跳过十六进制字符串前面的0x,但我不认为它会跳过十六进制字符串前面的#个字符.您可以添加此行来处理:

[scanner2 setCharactersToBeSkipped:[NSCharacterSet symbolCharacterSet]];

相关文章

Css常用的排序方式权重分配 排序方式: 1、按类型 ...
原文:https://www.cnblogs.com/wenruo/p/9732704.html 先上...
css属性:word-wrap:break-word; 与 word-break:break-all 的...
https://destiny001.gitee.io/color/
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML...
css之background的cover和contain的缩放背景图 对于这两个属...