如何从Int设置UIColor?

时间:2018-10-02 08:30:08

标签: swift background-color uicolor

所以在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 :(得分:1)

您必须先将值转换为浮点数,然后再除以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)

答案 1 :(得分:1)

尝试一下

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