一尘不染

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

swift

我想到了两种实现方式:在性能,可读性和可维护性方面,您认为其中哪一个更好?

  1. 创建像这样的UIColor扩展

    extension UIColor {
    class func myColor() -> UIColor {
        return UIColor(red: 128/255, green: 102/255, blue: 0, alpha: 1)
    }
    

    }

  2. 创建一个结构:

    struct Colors {
    static let myColor = UIColor(red: 255/255, green: 102/255, blue: 0, alpha: 1)
    

    }


阅读 198

收藏
2020-07-07

共1个答案

一尘不染

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

考虑一下;从哲学上讲,您是在“扩展”所提供的颜色范围UIColor。如果您的颜色名称是唯一的,并且新功能遵循Apple的方法命名协议(即<colorname>Color),则扩展UIColor似乎更整洁。一种或两种新颜色(以我的观点)并不能保证全部是专用的struct


奖励答案:(structenum!) 在哪里合适?

  • 如果您的应用强制替换标准颜色(即自定义“原色”颜色)
  • 如果您的应用是专门设计为主题/自定义的,则最好带一个enum,作为可用选项的具体列表。
  • 如果您无法想到颜色的标准名称(sharkBlueColor,有人吗?)。
  • 如果您的应用程序专门用于绘图/绘画(在这种情况下,“调色板”结构可能是个好主意)。

…清单继续。随着Swift开发人员的成熟,您必须学会识别并自行决定!

2020-07-07