首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在UIColor中获得随机的冷/暖颜色?

问如何在UIColor中获得随机的冷/暖颜色?
EN

Stack Overflow用户
提问于 2020-01-20 23:28:48
回答 2查看 114关注 0票数 1

我想randomly选择2种颜色。但它必须是随机的cold颜色和随机的warm颜色。

我正在使用这个extension获取一个随机颜色:

代码语言:javascript
复制
extension UIColor {

    static var random: UIColor {
        return UIColor(red: .random(in: 0...1),
                       green: .random(in: 0...1),
                       blue: .random(in: 0...1),
                       alpha: 1.0)
    }
}

根据这个post,我们可以假设:

代码语言:javascript
复制
if (B > R) { 
    color = cool
} else { 
    color = warm
}

如何修改我的随机扩展来选择随机暖色或随机冷色。

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-21 05:06:17

Fogmeister的答案符合技术要求,但也存在一些问题。对于暖色,如果红色足够低,你就看不到它。暖色的蓝色成分可能与红色非常接近,以至于没有明显的区别,等等。

我建议这样做:

代码语言:javascript
复制
extension UIColor {
    static var warm: UIColor {
        let red: CGFloat = .random(in: 0.6...1)  /Force red to be at least 0.6
        let blue: CGFloat = .random(in: 0..<0.5) //Force blue to be smaller
        return UIColor(red: red, green: .random(in: 0...1), blue: blue, alpha: 1)
    }

    static var cool: UIColor {
        let blue: CGFloat = .random(in: 0.6..<1.0)  //Force blue to be > 0.6
        let red: CGFloat = .random(in: 0...0.5) //Force red to be smaller
        return UIColor(red: red, green: .random(in: 0...1), blue: blue, alpha: 1)
    }
}
票数 2
EN

Stack Overflow用户

发布于 2020-01-20 23:38:38

如果您首先生成数字,则可以在计算red时使用blue的值,如下所示...

代码语言:javascript
复制
extension UIColor {
    static var warm: UIColor {
        let red: CGFloat = .random(in: 0...1)
        let blue: CGFloat = .random(in: 0..<red)
        return UIColor(red: red, green: .random(in: 0...1), blue: blue, alpha: 1)
    }

    static var cool: UIColor {
        let blue: CGFloat = .random(in: 0...1)
        let red: CGFloat = .random(in: 0..<blue)
        return UIColor(red: red, green: .random(in: 0...1), blue: blue, alpha: 1)
    }
}

这将满足您的需求,冷是红色小于蓝色和温暖是蓝色小于红色。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59826377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档