如何从 Int 设置 UIColor?
How do I set UIColor from Int?
所以在 SO 上有这个问题的答案,但它们很旧,据我所知 objectiveC
,所以...
我想使用从不同 view
传递的 Int
变量来设置 backgroundcolor
,如下所示:
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!
但这给了我一个错误...
那么,我该如何解决这个问题?
在除以 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)
所以在 SO 上有这个问题的答案,但它们很旧,据我所知 objectiveC
,所以...
我想使用从不同 view
传递的 Int
变量来设置 backgroundcolor
,如下所示:
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!
但这给了我一个错误...
那么,我该如何解决这个问题?
在除以 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)