将十六进制颜色作为字符串转换为 Uint

Pip*_*ppo 0 hex uicolor uint swift

我一直在寻找这个,但找不到有效或我理解的解决方案。

我在数据库“0x6c8c93”中有一个字符串,我想将其转换为 Uint,以便将其转换为颜色。

下面是我以前用来将 Uint 转换为颜色的函数。我刚刚将颜色图表中的十六进制值以这种格式 0x6c8c93 传递给它。但是现在我需要从数据库中提取一些值,所以我必须使用字符串。

class func UIColorFromHEX(hexValue: UInt) -> UIColor {
    return UIColor(
        red: CGFloat((hexValue & 0xFF0000) >> 16) / 255.0,
        green: CGFloat((hexValue & 0x00FF00) >> 8) / 255.0,
        blue: CGFloat(hexValue & 0x0000FF) / 255.0,
        alpha: CGFloat(1.0)
    )
}
Run Code Online (Sandbox Code Playgroud)

感谢帮助。

vac*_*ama 6

这是一种方法。使用String(string.characters.suffix(6))保留最后6的字符串的字符,然后使用UInt初始化UInt(_:radix:)到十六进制串转换为UInt

let string = "0x6c8c93"

if let hexValue = UInt(String(string.characters.suffix(6)), radix: 16) {
    // create the color from hexValue
}
Run Code Online (Sandbox Code Playgroud)