我通常使用使用具有斯威夫特扩展的iOS定制UIColors但现在iOS11 / XCode9我们可以创建颜色集。 我们如何使用它?
更新-提示
正如@心教堂说,我们可以拖放德颜色,使用它像一个的UIColor对象和可能的解决方案可以使用它作为一个扩展:
或为一个常数:
现在,我想知道,如果我们能像一个UIImage的访问的资产图像与否,就像访问它们:
UIImage(named: "image-name") -> UIColor(named: "color-name")
我通常使用使用具有斯威夫特扩展的iOS定制UIColors但现在iOS11 / XCode9我们可以创建颜色集。 我们如何使用它?
更新-提示
正如@心教堂说,我们可以拖放德颜色,使用它像一个的UIColor对象和可能的解决方案可以使用它作为一个扩展:
或为一个常数:
现在,我想知道,如果我们能像一个UIImage的访问的资产图像与否,就像访问它们:
UIImage(named: "image-name") -> UIColor(named: "color-name")
UIColor(named: "myColor")
来源: WWDC 2017年届237 -什么在MapKit的新
警告:你的项目的部署目标需要被设置到iOS 11.0。
(短问题的答案更新:有UIColor(named: "MyColor")
在Xcode 9.0)
回答原来的问题:
查看源代码时,它会转换为文字颜色:
#colorLiteral(red: 0, green: 0.6378085017, blue: 0.8846047521, alpha: 1)
你注意到的红色,绿色和蓝色的值有何不同? 这是因为我使用色彩空间定义他们Display P3
,但colorLiteral使用色彩空间sRGB
。
添加颜色设置为资产目录,命名并设置在属性检查你的颜色,然后把它在你的代码UIColor(named: "MyColor")
在资产目录浏览器,单击加号按钮在主面板的右下方,选择新颜色设置
点击白色方块,然后选择属性检查器 (在右窗格中最右边的图标)
从那里,你可以命名并选择你的颜色。
UIColor(named: "MyColor")
这将返回一个可选的,所以你需要解开它在大多数情况下(这是很可能的少数情况下,力解包是可以接受的一个,给你知道在你的资产目录的颜色存在)。 // iOS
let color = UIColor(named: "SillyBlue")
// macOS
let color = NSColor(named: "SillyBlue")
您需要使用UIColor(named: "appBlue")
你可以创建的UIColor扩展简单的访问功能。
enum AssetsColor {
case yellow
case black
case blue
case gray
case green
case lightGray
case seperatorColor
case rad
}
extension UIColor {
static func appColor(_ name: AssetsColor) -> UIColor? {
switch name {
case .yellow:
return UIColor(named: "appYellow")
case .black:
return UIColor(named: "appBlack")
case .blue:
return UIColor(named: "appBlue")
case .gray:
return UIColor(named: "appGray")
case .lightGray:
return UIColor(named: "appLightGray")
case .rad:
return UIColor(named: "appRad")
case .seperatorColor:
return UIColor(named: "appSeperatorColor")
case .green:
return UIColor(named: "appGreen")
}
}
您可以使用它像这样
userNameTextField.textColor = UIColor.appColor(.gray)