写了一些扩展,方便快速使用,最方便的还是字符串直接转颜色,不接受吐槽
先上代码图片:

为了少截图,所以三个扩展写一起的
代码如下:
extension UIColor {
static func hex(_ value : Int) -> UIColor{
return hex(value, 1)
}
static func hex(_ value : Int,_ transparency: Float) -> UIColor{
return UIColor(red: CGFloat(((value & 0xff0000) >> 16))/255.0, green: CGFloat(((value & 0xff00) >> 8))/255.0, blue: CGFloat(((value & 0xff)))/255.0, alpha: CGFloat(transparency))
}
}
extension Color {
static func hex(_ hex: Int) -> Color {
return Color(UIColor.hex(hex))
}
static func hex(_ hex: Int,_ alpha: Float) -> Color {
return Color(UIColor.hex(hex, alpha))
}
static func hex(_ hex: String) -> Color {
let colorString = hex.replacingOccurrences(of: "#", with: "")
var result: UInt64 = 0
Scanner(string: colorString).scanHexInt64(&result)
return Color(UIColor.hex(Int(result)))
}
func a(_ opacity: Double) -> Color {
return self.opacity(opacity)
}
}
extension String {
var c: Color {
return Color.hex(self)
}
}
如果项目整体设置颜色,可以使用下面的定义,还比较顺手,顺便吐槽一下,关于这点,swiftUI比flutter人性化,futter使用下面的方法,必须是扩展类去掉,而不是本体,差评。
extension Color {
static var titleColor: Color {
Color.hex(0x313A5D)
}
}
网友评论