我试图使用 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,因为组件保留为浮点数,并且它们的差异可能小于显示硬件可以解析的值。
另请记住,如果它们是在不同的颜色空间中定义的,则此方法将永远不会返回 TRUE。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)