【问题标题】:How to compare three Color in SwiftUI如何在 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 种颜色,枚举也可以工作

标签: if-statement swiftui equatable


【解决方案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?
猜你喜欢
  • 2013-10-07
  • 1970-01-01
  • 2023-01-31
  • 1970-01-01
  • 2012-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-22
相关资源
最近更新 更多