类型 'UIColor?' 没有成员".myCustomColor" Swift 5.0



我将所有颜色都放在专用的颜色资源中。这允许我定义支持"任何外观"和"深色外观"的命名常量。现有的颜色资源可以工作(以前定义(,但是如果我尝试定义新的颜色资源(例如myCustomColor(甚至复制现有的颜色资源,那么我会得到:

Type 'UIColor?' has no member 'myCustomColor'

示例用法:

label.textColor = .myCustomColor

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

UIColor(named: "myCustomColor")

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

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

您需要在扩展名中声明自定义颜色UIColor.

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

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

label.textColor = UIColor.myCustomColor

这里没有"问题"。一个静态属性UIColor.myCustomColor,类似于苹果的UIColor.systemRed,永远不会因为你把一个颜色集放到资产目录中而神奇地出现。如果需要这样的属性,则必须显式定义它。

最新更新