在文本颜色斯威夫特3使用十六进制的[复制]

问题描述 投票:0回答:1

这个问题已经在这里有一个答案:

我有点新雨燕和我碰上,我解决不了问题。我有表示与十六进制,例如“#004080”值的字符串。该值直接来自数据库,我想用它来修改一个UILabel的颜色,但我不能这样做。

这是我总结的代码:

...
let color1 = "004080"
...


//try do this:
plato1.textColor = UIColor(hex: color1)

//Error:
// Cannot convert value of type 'String' to expected argument type 'Int'

//Try this too:
plato1.textColor = UIColor(hex: Int(Color1)!)

//Error:
//This returns a different color: 4080, not 004080


//EXTENSION FOR A HEXADECIMAL
extension UIColor {

    convenience init(hex: Int) {
        let components = (
            R: CGFloat((hex >> 16) & 0xff) / 255,
            G: CGFloat((hex >> 08) & 0xff) / 255,
            B: CGFloat((hex >> 00) & 0xff) / 255
        )
        self.init(red: components.R, green: components.G, blue: components.B, alpha: 1)
    }
}

有些凌乱的十六进制数与SWIFT我。

有什么建议?

谢谢!

swift swift3 hex textcolor
1个回答
0
投票

您可以将您的字符串分割成两个字符的字符串表示的RGB各自独立。有没有显示前导零,这将解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.