在SwiftUI中可能需要使用十六进制字符串来指定前景色或背景色:
#FF4B00
例如,在Sketch软件中,设计的按钮背景色为:FF4B00。
因此,需要在SwiftUI通过十六进制字符串设置按钮的颜色。
设置过程
1、创建Color扩展:
import SwiftUI
extension Color {
init(hex: String) {
let scanner = Scanner(string: hex)
// 如果十六进制字符串有前缀 '#', 去掉它
if hex.hasPrefix("#") {
scanner.currentIndex = hex.index(after: hex.startIndex)
}
var rgbValue: UInt64 = 0
scanner.scanHexInt64(&rgbValue)
let red = Double((rgbValue & 0xFF0000) >> 16) / 255.0
let green = Double((rgbValue & 0x00FF00) >> 8) / 255.0
let blue = Double(rgbValue & 0x0000FF) / 255.0
self.init(red: red, green: green, blue: blue)
}
}
在视图中,通过Color(hex:””)设置指定的颜色。
.background(Color(hex: "#FF4B00"))
最后设置的效果为: