我正在尝试将字符串'red'转换为UIColor.red
,这是我到目前为止所得到的:
let rowColor = row.ResponsibilityColor!
print(rowColor) //this is "red"
styleToApply.backgroundColor = UIColor.yellow
现在如果我知道是否这样做,我肯定会有错误,因为UIColor
没有名为rowColor
的属性:
styleToApply.backgroundColor = UIColor.rowColor
是否有可能完成我想要做的事情?我不必使用if条件,因为颜色值来自Web服务。
答案 0 :(得分:1)
你想要那样的东西吗?
extension String {
func color() -> UIColor? {
switch(self){
case "red":
return UIColor.red
default:
return nil
}
}
}
使用它:
let rowColor = "red"
let color = rowColor.color()
print(color ?? "color not found in String extensions.")
打印红色 UIColor
:
r 1,0 g 0,0 b 0,0 a 1,0
不方便的是,您必须在String extension
中声明所有API颜色标识符,以将其转换为右侧UIColor
,此解决方案可以改进。