2016-04-17 5 views
-2

Я пытаюсь изменить backgroundColor нескольких UIButtons на основе словаря, который сохранил цвета в String.Невозможно получить значение от String до UIColor

т.е.

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


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

я получаю ноль. Почему?

+0

Вы сохраняете как строку в словаре и пытаетесь получить ее как UIColor – HardikDG

+0

в моем plist нет опции для Type: UIColor –

+0

Смотрите это сообщение: http://stackoverflow.com/questions/35776473/turn-string- in-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 объект.

NB: Это некоторые идеи для данных данных на диск. Очевидно, что в массиве только в памяти вы можете поместить любой интересующий вас объект, включая UIColor.

Смежные вопросы