从Xcode资产库自动填充UIColors

Xcode 9引入了一项不错的新功能,使您现在可以将颜色添加到素材资源库中。 这是使您的调色板井井有条的非常直观和简便的方法。 (如果您不熟悉如何向库中添加颜色,这非常简单。请查看此出色的Zeplin教程,以了解如何做。)

甚至添加了一个有用的便捷初始化程序,以便您可以在代码中调用新命名的颜色。

  let color = UIColor.init(named:“ headerBlue”) 

我开始在团队的代码库中采用此方法,但主要困扰在于Xcode当前无法自动完成这些命名的颜色。 似乎它们更适合在情节提要中使用,因为它们很容易访问。

作为开发人员,很容易错误地键入错误的颜色名称,并且最终没有显示任何颜色。 更糟糕的是,如果您的团队(如我的团队)具有非常大的调色板,那么可能很难记住确切的绿色是设计师想要的那种绿色🤷🏻。

这里有一些选项可以使在代码中使用命名颜色更加容易:

我之前链接的Zeplin教程建议为UIColor添加扩展,如下所示:

 扩展UIColor { 
@nonobjc类var headerBlue:UIColor {
返回UIColor(名称:“ headerBlue”)
}
}

但是,除非您使用其生成的文件,否则可能需要很多输入。

我想到的另一个解决方案是创建一个Colors枚举,该枚举为您保留所有颜色名称(与资产文件夹中的命名颜色相对应)。

 枚举颜色:字符串{ 
案例背景灰色
大小写错误红色
案例标题蓝色
案例突出黄色
}

然后,在您的代码中,可以像这样使用它:

 让headerBackgroundColor = UIColor.init(命名为:Colors.headerBlue.rawValue) 

需要注意的主要事情是区分大小写很重要,因此您必须确保颜色在资产目录和枚举大小写之间的命名完全相同,或者可以在字符串中添加不区分大小写的属性。

无论哪种方式,您命名的颜色都将成为自动完成的建议,而不是简单的字符串,因为字符串很容易造成拼写错误。 希望苹果将来会提出一种自动完成这些名称的方法,这样我们就不必再添加此额外的安全检查了。

您还有其他自动完成建议吗? 希望在评论中听到您的故事! ‍🎨🎨🖌


最初于 2017 年12月11日 发布在 kristina.io