如何在 SwiftUI 中比较三种颜色
Posted
技术标签:
【中文标题】如何在 SwiftUI 中比较三种颜色【英文标题】:How to compare three Color in SwiftUI 【发布时间】:2020-07-02 13:51:25 【问题描述】:我有三种颜色,我想比较它们。我应该让 Color 符合 Equatable 协议吗?
代码:
if Color.red == Color.green == Color.blue
// do something
【问题讨论】:
我认为该快照没有多大意义,您能提供更多上下文吗? 抱歉编辑错误 我在第二个中添加了双 Equals 您不能 (without a hack) 从Color
中提取 RGB 值以便进行比较,就像使用 UIColor
一样。我还要说,如果您觉得需要这样做,您可能会遇到更大的设计问题
取决于您的需求。您的数据也可以是 rgb 组件,但如果您只有 3 种颜色,枚举也可以工作
【参考方案1】:
我真的不明白你想要达到什么,但你可以比较它们
let colorr = UIColor(red: 122/255, green: 100/255, blue: 180/255, alpha: 1.0)
let rgbColorr = colorr.cgColor
let rgbColorrs = rgbColorr.components
这个rgbColorrs
打印和数组就像[0.47843137254901963, 0.39215686274509803, 0.7058823529411765, 1.0]
它就像[red,green,blue,alpha]
一样
if rgbColorrs[0] == rgbColors[1] == rgbColors[2]
//....
或者如果你想比较平等
if UIColor.red.isEqual(UIColor.green.isEqual(UIColor.blue))
...
【讨论】:
这是否也适用于 Color 而不仅仅是 UIColor?以上是关于如何在 SwiftUI 中比较三种颜色的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI - 如何在文本视图中更改自定义 SF 符号的颜色?