【发布时间】:2021-10-07 12:01:39
【问题描述】:
我编写了一个将十六进制转换为颜色的扩展。添加了断点来检查 r,g,b 值是否正确。一切看起来都很好,但是当我初始化颜色时,它与我提供的十六进制值不一样。
extension Color {
init(hexColor: String) {
// Trim all characters excepts Alphanumerics
let hex = hexColor.trimmingCharacters(in: CharacterSet.alphanumerics.inverted)
let hexNumber = Int(hex, radix: 16) ?? 0
let redColor: Double = Double((hexNumber >> 16) & 0xFF)
let greenColor: Double = Double((hexNumber >> 8) & 0xFF)
let blueColor: Double = Double((hexNumber >> 0) & 0xFF)
self.init(.sRGB, red: redColor, green: greenColor, blue: blueColor, opacity: 1)
} }
【问题讨论】: