我正在尝试使用用 Objective-C 编写的代码来确定两种颜色是否相等。
我正在使用这段代码来确定两种颜色是否相同(目前用于调试目的)
NSLog(@"currentColor is %@", currentColor);
NSLog(@"Adjacent Color is %@",[[buttonArray objectAtIndex:1] backgroundColor]);
NSLog(@"%i",[[buttonArray objectAtIndex:1] backgroundColor]==currentColor);
我的控制台正在显示
2009-10-20 00:27:10.814 colorGame[13588:207] currentColor is kCGColorSpaceModelRGB 0 0 1 1
2009-10-20 00:27:10.815 colorGame[13588:207] Adjacent Color is kCGColorSpaceModelRGB 0 0 1 1
2009-10-20 00:27:10.815 colorGame[13588:207] 0
如果有人问我可以发布更多代码(我不知道是否真的有必要)。当前颜色最初定义为
UIColor *currentColor;
如果有任何帮助。
我很确定我只是做错了比较,而且可能有一些我不知道的内置方法可以比较颜色。
最佳答案
@implementation UIColor (compare)
- (BOOL) isEqualToColor:(UIColor *) otherColor
{
return CGColorEqualToColor(self.CGColor, otherColor.CGColor);
}
@end
请记住,看起来相同的两种颜色可能返回 TRUE,也可能不返回 TRUE,因为组件保持为 float ,它们的差异值可能小于显示硬件可以解析的值。
另请记住,如果它们在不同的颜色空间中定义,则此方法永远不会返回 TRUE。
关于iphone - 在 Objective-C 中比较颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1592995/