gpt4 book ai didi

ios - 如何比较两个在 iOS 中具有几乎相同阴影或范围的 UIColor?

转载 作者:技术小花猫 更新时间:2023-10-29 10:54:37 26 4
gpt4 key购买 nike

我的应用程序有一个条件,用户可以选择 3 种颜色,但这些颜色不应该相互匹配,问题是用户可以从托盘中为所有 3 个字段选择相似的颜色。

我正在尝试下面的代码,这里 color2 的“绿色”值与 color1 略有不同:-

UIColor *color1 = [UIColor colorWithRed:1 green:(CGFloat)0.4 blue:1 alpha:1];
UIColor *color2 = [UIColor colorWithRed:1 green:(CGFloat)0.2 blue:1 alpha:1];

if ([color1 isEqual:color2]) {
NSLog(@"equals");
}else {
NSLog(@"not equal");
}

输出:'不等于'这在逻辑上是正确的,因为它比较了 RGB 值,但我想检查它的范围,如果有人知道如何比较相似的颜色,请告诉我。

最佳答案

您需要一个容忍,其值只有您可以决定:

- (BOOL)color:(UIColor *)color1
isEqualToColor:(UIColor *)color2
withTolerance:(CGFloat)tolerance {

CGFloat r1, g1, b1, a1, r2, g2, b2, a2;
[color1 getRed:&r1 green:&g1 blue:&b1 alpha:&a1];
[color2 getRed:&r2 green:&g2 blue:&b2 alpha:&a2];
return
fabs(r1 - r2) <= tolerance &&
fabs(g1 - g2) <= tolerance &&
fabs(b1 - b2) <= tolerance &&
fabs(a1 - a2) <= tolerance;
}

...

UIColor *color1 = [UIColor colorWithRed:1 green:(CGFloat)0.4 blue:1 alpha:1];
UIColor *color2 = [UIColor colorWithRed:1 green:(CGFloat)0.2 blue:1 alpha:1];

if ([self color:color1 isEqualToColor:color2 withTolerance:0.2]) {
NSLog(@"equals");
} else {
NSLog(@"not equal");
}

关于ios - 如何比较两个在 iOS 中具有几乎相同阴影或范围的 UIColor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21622129/

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