我的按钮中填充了颜色:enter image description here
当用户按下颜色时,会生成一个字符串,即
f = open("test.txt",'r')
while True:
text = f.readline()
if 'Title' in text:
print text
或Yellow
或Blue
等。
我想要的是在我回来时将字符串加载到UIColor中:
Black
我知道garageNameLabel.backgroundColor = UIColor."THE STRING THAT WAS GENERATED"
,UIColor.whiteColor()
就在那里。
代码:
blackColor()
谢谢
答案 0 :(得分:5)
我通过制作字典来解决问题
var colors : [String:UIColor] = ["White": UIColor.whiteColor(), "Black":
UIColor.blackColor(), "Gray": UIColor.grayColor(),"Turquoise":
UIColor.cyanColor(),"Red":
UIColor.redColor(),"Yellow":UIColor.yellowColor(),"Blue": UIColor.blueColor(),
"Green": UIColor.greenColor()]
然后将字符串加载到其中,即:
let theStringColor = "Blue"
garageNameLabel.backgroundColor = colors[theStringColor]
答案 1 :(得分:1)
在这样的OBJC代码中工作。我没有测试过这段代码,只是把它从OBJC翻译成了swift。
private func setColorWithNameForLabel(label: UILabel, colorName: String) {
let colorString = colorName + "Color" // if your colorName matches f.i. "black" --> blackColor
let s = Selector(colorString)
if let color = UIColor.performSelector(s).takeUnretainedValue() as? UIColor { // as of swift 2.0 you have to take the retained value
label.textColor = color
}
}
答案 2 :(得分:0)
您可以在segue中传递参数。在新视图中,在viewDidLoad()函数中,您可以执行检查,根据参数的值更改颜色。
if parameter == "blue" {
garageNameLabel.backgroundColor = UIColor.blueColor ()
} Else if parameter == "green" {
garageNameLabel.backgroundColor = UIColor.greenColor ()
}