Iphone 将UILabel中的文本颜色与UIColor进行比较失败
我试图将UIlabel中的文本颜色与UIColor进行比较,但结果总是错误的 以下代码生成结果:Iphone 将UILabel中的文本颜色与UIColor进行比较失败,iphone,objective-c,Iphone,Objective C,我试图将UIlabel中的文本颜色与UIColor进行比较,但结果总是错误的 以下代码生成结果: color equal 1, 0 我希望a和b都等于1。有没有其他方法来进行比较 bool a,b; UIColor *myColor1, *myColor2; myColor1 = [UIColor redColor]; mainViewController.timerLabel.textColor = [UIColor redColor]; myC
color equal 1, 0
我希望a和b都等于1。有没有其他方法来进行比较
bool a,b;
UIColor *myColor1, *myColor2;
myColor1 = [UIColor redColor];
mainViewController.timerLabel.textColor = [UIColor redColor];
myColor2 = [UIColor colorWithCGColor:mainViewController.timerLabel.textColor.CGColor];
a = [[UIColor redColor] isEqual:myColor1];
b = [[UIColor redColor] isEqual:myColor2];
NSLog(@"color equal %i, %i",a,b);
UIColor未定义isEqual,isEqual是从NSObject继承的。因此,isEqual正在比较颜色的地址,并且将失败 CGColor有一个比较函数
CGColorEqualToColor()
:
然后可以比较CGColor颜色:
bool colorsEqual = CGColorEqualToColor(myColor1.CGColor, myColor2.CGColor);
或者获取两种颜色的各个组成部分,然后使用-(BOOL)getRed:(CGFloat*)红绿色:(CGFloat*)绿蓝色:(CGFloat*)蓝色alpha:(CGFloat*)alpha
谢谢Zaph,这很有意义。
bool colorsEqual = CGColorEqualToColor(myColor1.CGColor, myColor2.CGColor);