将字符串转换为UIColor swift

时间:2016-03-03 15:37:19

标签: ios string swift uicolor

我的按钮中填充了颜色:enter image description here

当用户按下颜色时,会生成一个字符串,即 f = open("test.txt",'r') while True: text = f.readline() if 'Title' in text: print text YellowBlue等。

我想要的是在我回来时将字符串加载到UIColor中:

Black

我知道garageNameLabel.backgroundColor = UIColor."THE STRING THAT WAS GENERATED" UIColor.whiteColor()就在那里。

代码:

blackColor()

谢谢

3 个答案:

答案 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 ()
}