如何将字符串中的标准颜色名称转换为 UIColor 值
How to convert standard color names in string to UIColor values
我有一个变量:
var colorName = String()
我需要按钮的色调是合适的颜色。执行以下操作:
cell.btn.tintColor = UIColor.red
适合我。但是我需要使用我的 colorName 变量而不是 "UIColor.red" 表达式。
如何将字符串 red
的 UIColor
初始化为 UIColor.red
?
没有内置功能可以创建带有名称的 UIColor。你可以像 Paul Hudson found here: https://www.hackingwithswift.com/example-code/uicolor/how-to-convert-a-html-name-string-into-a-uicolor
那样写一个扩展
简化示例:
extension UIColor {
public func named(_ name: String) -> UIColor? {
let allColors: [String: UIColor] = [
"red": .red,
]
let cleanedName = name.replacingOccurrences(of: " ", with: "").lowercased()
return allColors[cleanedName]
}
}
然后使用它:
let redColor = UIColor().named("red")
您也可以像本文中那样定义一个 xcassets:https://medium.com/bobo-shone/how-to-use-named-color-in-xcode-9-d7149d270a16
然后使用UIColor(named: "red")
由于没有预定义的方法来执行此操作,因此我们需要为此创建一个自定义方法,因此您可以使用下面定义的方法:-
func chooseColor(_ name: String) -> UIColor{
switch name {
case "red":
return UIColor.red //or you can use hex colors here
case "blue":
return UIColor.blue
case "brown":
return UIColor.brown
case "green":
return UIColor.green
case "yellow":
return UIColor.yellow
default :
return UIColor.black
}
}
然后,您可以通过调用它来访问它,就像在下面的语句中调用的那样:-
cell.btn.tintColor = chooseColor("red")
我有一个变量:
var colorName = String()
我需要按钮的色调是合适的颜色。执行以下操作:
cell.btn.tintColor = UIColor.red
适合我。但是我需要使用我的 colorName 变量而不是 "UIColor.red" 表达式。
如何将字符串 red
的 UIColor
初始化为 UIColor.red
?
没有内置功能可以创建带有名称的 UIColor。你可以像 Paul Hudson found here: https://www.hackingwithswift.com/example-code/uicolor/how-to-convert-a-html-name-string-into-a-uicolor
那样写一个扩展简化示例:
extension UIColor {
public func named(_ name: String) -> UIColor? {
let allColors: [String: UIColor] = [
"red": .red,
]
let cleanedName = name.replacingOccurrences(of: " ", with: "").lowercased()
return allColors[cleanedName]
}
}
然后使用它:
let redColor = UIColor().named("red")
您也可以像本文中那样定义一个 xcassets:https://medium.com/bobo-shone/how-to-use-named-color-in-xcode-9-d7149d270a16
然后使用UIColor(named: "red")
由于没有预定义的方法来执行此操作,因此我们需要为此创建一个自定义方法,因此您可以使用下面定义的方法:-
func chooseColor(_ name: String) -> UIColor{
switch name {
case "red":
return UIColor.red //or you can use hex colors here
case "blue":
return UIColor.blue
case "brown":
return UIColor.brown
case "green":
return UIColor.green
case "yellow":
return UIColor.yellow
default :
return UIColor.black
}
}
然后,您可以通过调用它来访问它,就像在下面的语句中调用的那样:-
cell.btn.tintColor = chooseColor("red")