将自定义UIColor引入Swift项目的最佳方法是什么?

Ale*_*ini 8 uicolor ios swift

我想过两种类型的实现; 在性能,可读性和可维护性方面,您认为哪一个更好?

  1. 像这样创建UIColor的扩展

    extension UIColor {
        class func myColor() -> UIColor {
            return UIColor(red: 128/255, green: 102/255, blue: 0, alpha: 1)
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 创建一个结构:

    struct Colors {
        static let myColor = UIColor(red: 255/255, green: 102/255, blue: 0, alpha: 1)
    }
    
    Run Code Online (Sandbox Code Playgroud)

Vat*_*not 13

答:扩展,以我的专业意见.

想一想; 在哲学上,你是'扩展'提供的颜色范围UIColor.如果您的颜色名称是不同的,并且新功能遵循Apple的方法命名协议(即<color name>Color),则扩展UIColor看起来更整洁.一种或两种新颜色(在我看来)不保证整个专用struct.


奖金回答:(structenum!) 哪里适合?

  • 如果您的应用强制替换标准颜色(即自定义'主要'颜色)
  • 如果您的应用程序专门设计为主题/自定义,那么可以将enum其作为可用选项的具体列表.
  • 如果你想不出颜色的标准名称(sharkBlueColor任何人?).
  • 如果您的应用专门用于绘图/绘画(在这种情况下,"调色板"构造可能是个好主意).

......列表还在继续.当你成熟为Swift开发者时,你必须学会​​辨别并自己决定!