我正在尝试将字符串“red”转换为UIColor.red
,这是我到目前为止所得到的:
let rowColor = row.ResponsibilityColor!
print(rowColor) //this is "red"
styleToApply.backgroundColor = UIColor.yellow
现在,如果我知道是否执行此操作,无疑会出现错误,因为
UIColor
没有名为rowColor
的属性:styleToApply.backgroundColor = UIColor.rowColor
是否有可能完成我想做的事情?我不必使用if条件,因为颜色值来自Web服务。
最佳答案
你想要那样的东西吗?
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
,此解决方案可以得到改进。关于ios - Swift字符串作为UIColor对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50511433/