Swift 如何从Int设置UIColor?

Swift 如何从Int设置UIColor?,swift,background-color,uicolor,Swift,Background Color,Uicolor,关于这个问题有很多答案,但它们都很古老,据我在objectiveC中所知,所以 我想使用从不同的视图传递的Int变量设置backgroundcolor,如下所示: backgroundView.backgroundColor = UIColor(red: red/255, green: green/255, blue: blue/255, alpha: 0.5) var red: Int! var green: Int! var blue: Int! backgroundView.backg

关于这个问题有很多答案,但它们都很古老,据我在
objectiveC
中所知,所以

我想使用从不同的
视图传递的
Int
变量设置
backgroundcolor
,如下所示:

backgroundView.backgroundColor = UIColor(red: red/255, green: green/255, blue: blue/255, alpha: 0.5)
var red: Int!
var green: Int!
var blue: Int!
backgroundView.backgroundColor = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 0.5)
使用的变量
红色
绿色
蓝色
如下:

backgroundView.backgroundColor = UIColor(red: red/255, green: green/255, blue: blue/255, alpha: 0.5)
var red: Int!
var green: Int!
var blue: Int!
backgroundView.backgroundColor = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 0.5)
当然,使用上一个
视图中的数字

Xcode希望我将其转换为
CGFloat
,如下所示:

backgroundView.backgroundColor = UIColor(red: red/255, green: green/255, blue: blue/255, alpha: 0.5)
var red: Int!
var green: Int!
var blue: Int!
backgroundView.backgroundColor = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 0.5)
但是,正确的颜色不会被保留,只会显示灰色

我尝试将
Int
变量更改为
UIColor

var red: UIColor!
但这给了我一个错误


那么,如何解决这个问题呢?

在将值除以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)
试试这个

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

您在
红色
绿色
蓝色
中存储了哪些值?对于视图1:red=144,green=183,blue=56,view2:red=225,green=163,blue=38,view3:red=186,green=0,blue=19,view4:red=122,green=28,blue=125。所有视图上的结果相同…类型
let red=144;将(红色/255)
打印到操场上,您将看到问题!(这叫做“调试”:)是的!就在那里!Xcode自动将其更正为不起作用的。现在它就像一个符咒,谢谢你!