我将所有颜色都放在专用的颜色资产中。这使我可以定义支持“任何外观”和“黑暗外观”的命名常量。现有的颜色资产可以工作(以前定义),但是如果我尝试定义新的颜色资产(例如myCustomColor),或者甚至复制现有的颜色资产,那么我会得到:
Type 'UIColor?' has no member 'myCustomColor'
示例用法:
label.textColor = .myCustomColor
我知道我可以使用(已经过新创建的颜色测试,因此没有错别字):
UIColor(named: "myCustomColor")
但是,我不想更改此语法或使我的代码混乱的其他语法。
我在Xcode 11.3(11C29)上并使用Swift5。是否还有其他遇到相同问题的人?
您可以使用扩展名将自定义颜色映射到类变量。
extension UIColor {
class var myCustomColor {
return UIColor(named: "myCustomColor")
}
}