我使用此代码从十六进制值创建UIColor。它工作得很完美。
extension UIColor {
convenience init(red: Int, green: Int, blue: Int) {
assert(red >= 0 && red <= 255, "Invalid red component")
assert(green >= 0 && green <= 255, "Invalid green component")
assert(blue >= 0 && blue <= 255, "Invalid blue component")
self.init(red: CGFloat(red) / 255.0, green: CGFloat(green) / 255.0, blue: CGFloat(blue) / 255.0, alpha: 1.0)
}
convenience init(netHex:Int) {
self.init(red:(netHex >> 16) & 0xff, green:(netHex >> 8) & 0xff, blue:netHex & 0xff)
}
}
用法:
var textColor = UIColor(netHex: 0xffffff)
这段代码非常适合Int十六进制代码。但是它需要十六进制代码0xffffff作为Int类型。我有十六进制代码从网络服务。它将类似于"#ffffff“(String而不是Int)。我可以将这个字符串转换为"0xffffff“。但是我不能从“0xffffff”(字符串)转换成0xffffff (Int)。
我需要这样的东西
var textColor = UIColor(netHex: "0xffffff")
或者像这样更好:
var textColor = UIColor(netHex: "#ffffff")
提前谢谢。
https://stackoverflow.com/questions/31782316
复制相似问题