【发布时间】:2015-08-03 08:06:34
【问题描述】:
我正在使用此代码从十六进制值创建 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”(字符串不是 Int)。我可以将此字符串转换为“0xffffff”。但我无法从“0xffffff”(字符串)转换为 0xffffff(整数)。
我需要这样的东西
var textColor = UIColor(netHex: "0xffffff")
或者更好的是:
var textColor = UIColor(netHex: "#ffffff")
提前致谢。
【问题讨论】:
-
您看过“相关”部分吗?链接到的问题在 Objective-C 和 Swift 中都有很多答案,你应该在那里找到你需要的。
-
我是 Swift 的新开发者。我从 swift 而不是 Objective c 开始 iOS 开发。只有十六进制代码才有 UIColor 的答案。但我需要 UIColor 的十六进制字符串。这就是我问这个问题的原因。
-
使用 Swift 代码将十六进制字符串转换为 UIColor 的“重复”问题至少有 6 个答案,例如 stackoverflow.com/a/31496999/1187415,它使用与以下答案相同的技术。
-
我搜索了 3 小时。我无法得到答案。你能把任何链接发给我吗?
标签: ios swift nsstring int uicolor