Joe*_*Joe 5 iphone objective-c
我试图将UIlabel中的文本颜色与UIColor进行比较,但结果始终为false.
以下代码生成结果:
color equal 1, 0
Run Code Online (Sandbox Code Playgroud)
我希望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);
Run Code Online (Sandbox Code Playgroud)
zap*_*aph 11
UIColor没有定义isEqual,isEqual是从NSObject继承的.因此isEqual正在比较颜色的地址并将失败.
CGColor有一个比较功能CGColorEqualToColor():
CGColor *c = myColor.CGColor;
Run Code Online (Sandbox Code Playgroud)
然后可以比较CGColor颜色:
bool colorsEqual = CGColorEqualToColor(myColor1.CGColor, myColor2.CGColor);
Run Code Online (Sandbox Code Playgroud)
或者获取两种颜色的各个组件,然后单独比较使用
- (BOOL)getRed:(CGFloat *)red green:(CGFloat *)green blue:(CGFloat *)blue alpha:(CGFloat *)alpha
| 归档时间: |
|
| 查看次数: |
1392 次 |
| 最近记录: |