Установить цвет метки в Swift программно - PullRequest
0 голосов
/ 23 января 2020

In (iOS) SWIFT Я хочу передать цвет метки через переменную и, в частности, массив. Я вычисляю число (мой индекс), а затем хочу найти внутри массива, который содержит цветные строки, выбрать цвет и передать его в UIColor часть определения метки:

вместо

myLabel.textColor = UIColor.green

// Swift требует явного определения цвета "зеленый"

Я хочу

var Tcolor = ["green", "blue", "red"]
var index: Int = 1

myLabel.text = "myLabel Text"

myLabel.textColor = UIColor.Tcolor[index]

// это должно привести к тому же результату, что и выше, но программно. Тем не менее,

возвращает ошибку с комментарием «Tcolor не является членом UIColor» ...

Есть ли другой способ обойти?

Ответы [ 3 ]

2 голосов
/ 24 января 2020

var Tcolor = [UIColor.green, UIColor.blue, UIColor.red]

Смотри свою ошибку Tcolor is not a UIColor member. Ваш Tcolor string, а myLabel.textColor нужно UIColor

0 голосов
/ 24 января 2020

Вы можете попробовать вот так

let colors = [UIColor(red:1.00, green:0.09, blue:0.32, alpha:1.0), UIColor(red:1.00, green:0.80, blue:0.02, alpha:1.0), UIColor(red:0.00, green:0.81, blue:0.62, alpha:1.0), UIColor(red:0.00, green:0.56, blue:0.00, alpha:1.0)]

myLabel.textColor = color[2]
0 голосов
/ 24 января 2020

Создать массив из UIColor не строк

var Tcolor : [UIColor] = [UIColor.red, UIColor.blue, UIColor.green]
var index: Int = 1
myLabel.textColor = Tcolor[index]

Если вам нужны имена Sting для цветов, вы можете сделать это:

Tcolor : [String : UIColor] = ["Red" : UIColor.red, "Blue" : UIColor.blue, "green" : UIColor.green]

Color по дружескому имени?

let Tcolor_red = Tcolor["Red"]

ИЛИ

myLabel.textColor = Tcolor["Red"]

...