无法生成随机颜色

时间:2017-03-13 16:34:23

标签: ios swift xcode swift3

我想在用户点击元素时总是改变颜色,但点击后我得到白色或透明色(我不会看到对象)

有我的代码:

let red = arc4random_uniform(256)
let green = arc4random_uniform(256)
let blue = arc4random_uniform(256)
color = UIColor(red: CGFloat(red), green: CGFloat(green), blue: CGFloat(blue), alpha: CGFloat(1))

如果我使用UIColor.green或其他颜色的作品

3 个答案:

答案 0 :(得分:2)

RGB值必须在0到1.0的范围内指定。将RGB值除以256,因为大于1.0的值被解释为1.0。 见https://developer.apple.com/reference/uikit/uicolor/1621925-init

答案 1 :(得分:0)

在创建颜色之前,尝试将每个值除以1:

color = UIColor(red: CGFloat(1.0 / red), green: CGFloat(1.0 / green), blue: CGFloat(1.0 / blue), alpha: CGFloat(1))

答案 2 :(得分:0)

试试这个。

let red = randomInteger(limited: 256)
let green = randomInteger(limited: 256)
let blue = randomInteger(limited: 256)

color = UIColor(red: CGFloat(256 / red), green: CGFloat(256 / green), blue: CGFloat(256 / blue), alpha: CGFloat(1.0))

public func randomInteger(limited limit: Int) -> Int
{
    return Int(arc4random_uniform(UInt32(limit)))
}

但是你必须对回归的价值做些什么。 颜色范围为0.0到1.0