gpt4 book ai didi

ios - 比较 2 个 UIColor(s)

转载 作者:搜寻专家 更新时间:2023-10-31 22:12:42 24 4
gpt4 key购买 nike

这一定是以前问过的,但我找不到合适的引用。我找到了这个 question , 但这是将三个数字相互比较。

我正在尝试比较 2 个 UIColor(s) 以避免重复。每种颜色都在 r、g、b、alpha 中引用。我形成颜色以便控制数字格式。

处理此问题的适当方法是什么?

感谢所有帮助。

最佳答案

如果您以相同的方式创建所有颜色,您只需使用 ==

如果您的颜色在不同的颜色空间中,而您只想比较它们的 RGBA 值,请使用以下方法:

extension UIColor {
func equals(_ rhs: UIColor) -> Bool {
var lhsR: CGFloat = 0
var lhsG: CGFloat = 0
var lhsB: CGFloat = 0
var lhsA: CGFloat = 0
self.getRed(&lhsR, green: &lhsG, blue: &lhsB, alpha: &lhsA)

var rhsR: CGFloat = 0
var rhsG: CGFloat = 0
var rhsB: CGFloat = 0
var rhsA: CGFloat = 0
rhs.getRed(&rhsR, green: &rhsG, blue: &rhsB, alpha: &rhsA)

return lhsR == rhsR &&
lhsG == rhsG &&
lhsB == rhsB &&
lhsA == rhsA
}
}

例如:

let white1 = UIColor.white
let white2 = UIColor(colorLiteralRed: 1, green: 1, blue: 1, alpha: 1)
white1 == white2 //false
white1.cgColor == white2.cgColor //false
white1.equals(white2) //true

关于ios - 比较 2 个 UIColor(s),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40486690/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com