0

我将所有颜色都保存在专用颜色资产中。这允许我定义支持“任何外观”和“深色外观”的命名常量。现有的颜色资产有效(以前定义的),但如果我尝试定义新的(例如 myCustomColor)甚至复制现有的,那么我会得到:

Type 'UIColor?' has no member 'myCustomColor'

示例用法:

label.textColor = .myCustomColor

我知道我可以使用(用新创建的颜色测试,所以没有错别字):

UIColor(named: "myCustomColor")

但是,我不想更改此语法或让不同的语法使我的代码混乱。

我在 Xcode 11.3 (11C29) 上使用 Swift 5。还有其他人有同样的问题吗?

4

2 回答 2

4

您需要在UIColor.

extension UIColor {
    static let myCustomColor = UIColor(named: "myCustomColor")
}

然后,您可以使用此颜色,如下所示:

label.textColor = UIColor.myCustomColor
于 2019-12-18T20:45:21.550 回答
0

这里没有“问题”。静态属性UIColor.myCustomColor,类似于 Apple 的UIColor.systemRed,永远不会因为您将颜色集放入资产目录而神奇地出现。如果你想要这样一个属性,你必须明确定义它。

于 2019-12-18T20:46:06.673 回答