2016-04-17 46 views
-2

我正在嘗試基於字典中保存了字符串中的顏色來更改一些UIButton的backgroundColor。無法從字符串獲取值到UIColor

button1.backgroundColor = dic!.valueForKey("Button1Color") as? UIColor 


    // in the dictionary: 
    Button1Color = "UIColor.redColor()" 

我得到零。 爲什麼?

+0

你在字典中保存爲字符串,並試圖讓它作爲UIColor – HardikDG

+0

在我的plist中沒有選項類型:UIColor –

+0

看到這篇文章:http://stackoverflow.com/questions/35776473/turn-string- into-a-uicolor-swift?rq = 1 –

回答

1

您可以將顏色存儲爲字符串,並使用一些庫或代碼片段(例如here)將其轉換爲UIColor並返回字符串。

或者,你可以存儲4個Float數字組成一的UIColor在類似這樣的方案:

let bg1: [String:CGFloat] = ["red": 1, "green": 0, "blue": 0, "alpha": 1] 

,並使用初始化UIColor(red:green:blue:alpha)創建UIColor對象。

注意:這些是堅持數據到磁盤的一些想法。很明顯,在內存中只有數組可以放任何你喜歡的對象,包括UIColor