Как мне установить UIColor от Int? - PullRequest
0 голосов
/ 02 октября 2018

Итак, на SO есть ответы на эти вопросы, но они старые и, насколько я могу судить в objectiveC, так что ...

Я хочу установить backgroundcolor, используя Int переменныепередается из другого view, например:

backgroundView.backgroundColor = UIColor(red: red/255, green: green/255, blue: blue/255, alpha: 0.5)

Используемые переменные red green blue выглядят так:

var red: Int!
var green: Int!
var blue: Int!

С числами из предыдущегоview конечно.

XCode хочет, чтобы я преобразовал его в CGFloat следующим образом:

backgroundView.backgroundColor = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 0.5)

Но тогда правильный цвет не переносится, а отображается только серый.

Я пытался изменить Int переменные на UIColor

var red: UIColor!

Но это дало мне ошибку ...

Итак, как мне это исправить?

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Попробуйте это

backgroundView.backgroundColor = UIColor(red: CGFloat(red)/255.0, green: CGFloat(green)/255.0, blue: CGFloat(blue)/255.0, alpha: 0.5)
0 голосов
/ 02 октября 2018

Вы должны преобразовать значение в число с плавающей точкой, прежде чем делить его на 255, иначе деление будет делиться на два целых числа, в результате чего всегда будет 0:

CGFloat(red) / 255 = 0.5647058823529412
CGFloat(red / 255) = 0

backgroundView.backgroundColor = UIColor(red: CGFloat(red) / 255, green: CGFloat(green) / 255, blue: CGFloat(blue) / 255, alpha: 0.5)
...