美文网首页
swiftUI 关于Color的一些小记

swiftUI 关于Color的一些小记

作者: Fillinse | 来源:发表于2023-10-18 18:26 被阅读0次

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


截屏2023-10-19 18.21.57.png

为了少截图,所以三个扩展写一起的
代码如下:

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)
   }
}

相关文章

网友评论

      本文标题:swiftUI 关于Color的一些小记

      本文链接:https://www.haomeiwen.com/subject/ncycidtx.html