作者:想太多先生的微博 | 来源:互联网 | 2023-02-01 21:24
我通常在iOS上使用自定义UIColors使用Swift扩展,但现在使用iOS11/XCode9我们可以创建颜色集.我们怎样才能使用它们?
更新 - 提示
正如@Cœur所说,我们可以拖放de color,并像UIColor对象一样使用它,可能的解决方案可以用作扩展:
或者作为常数:
现在我想知道我们是否可以访问它们,就像UIImage访问资产图像一样,如:
UIImage(named: "image-name") -> UIColor(named: "color-name")
小智..
62
UIColor(named: "myColor")
资料来源:WWDC 2017 Session 237 - MapKit的新功能
警告:您的项目的部署目标需要设置为iOS 11.0.
1> 小智..:
UIColor(named: "myColor")
资料来源:WWDC 2017 Session 237 - MapKit的新功能
警告:您的项目的部署目标需要设置为iOS 11.0.
这将需要部署目标= 11.0.
2> Cœur..:
(问题更新的简答:UIColor(named: "MyColor")
Xcode 9.0中有)
回答原来的问题:
你创建你的颜色集
你可以在你的片段中找到你的颜色,然后拖放它
在查看源代码时,它将转换为颜色文字:
#colorLiteral(red: 0, green: 0.6378085017, blue: 0.8846047521, alpha: 1)
你注意到红色,绿色和蓝色的值是如何不同的?这是因为我使用Color Space定义了它们Display P3
,但colorLiteral使用的是Color Space sRGB
.
3> robmathers..:
精简版
将颜色集添加到资产目录,为其命名并在属性检查器中设置颜色,然后在代码中调用它UIColor(named: "MyColor")
.
完整说明
在资产目录查看器中,单击主面板右下角的加号按钮,然后选择" 新建颜色集"
单击白色方块,然后选择" 属性"检查器(右侧窗格中最右侧的图标)
从那里你可以命名并选择你的颜色.
要在代码中使用它,请使用它UIColor(named: "MyColor")
.这将返回一个可选项,因此在大多数情况下您需要打开它(这可能是少数可以接受强制解包的情况之一,因为您知道资产目录中存在颜色).
我怎么能在iOS <= 10中做到这一点
这将需要部署目标= 11.0.
4> Hitesh Agarw..:
您需要使用UIColor(named: "appBlue")
。
而且,您可以在UIColor扩展中创建一个函数以进行简单访问。
enum AssetsColor {
case yellow
case black
case blue
case gray
case green
case lightGray
case seperatorColor
case red
}
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 .red:
return UIColor(named: "appRad")
case .seperatorColor:
return UIColor(named: "appSeperatorColor")
case .green:
return UIColor(named: "appGreen")
}
}
你可以这样使用
userNameTextField.textColor = UIColor.appColor(.gray)