我使用下面的代码行,但它似乎没有做我期待的事情,即查看按钮标题的标题文字颜色是否为绿色。但是,我没有收到编译错误,因此必须做一些事情:
if ([sfield1 currentTitleColor] != [UIColor greenColor])
有人知道是否有办法进行这种比较?感谢。
答案 0 :(得分:2)
您可以尝试使用 -
isEqual:
但是如果颜色模型有差异,那么在使用它时需要小心,然后它可能会失败。
答案 1 :(得分:1)
试试这可能有用。,。,。
but=[[UIButton alloc]init];
[but setTitle:@"nice" forState:UIControlStateNormal];
[but setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
[but setFrame:CGRectMake(100, 450, 40, 20)];
[self.view addSubview:but];
if (but.titleLabel.textColor==[UIColor blueColor])
{
NSLog(@"nothing., it is very easy.,.");
}
我正在学习,。,。,,。
答案 2 :(得分:1)
选择两种颜色:
UIColor *color = value;
const CGFloat *components = CGColorGetComponents(color.CGColor);
NSString *colorAsString = [NSString stringWithFormat:@"%f,%f,%f,%f", components[0], components[1], components[2], components[3]];
然后比较两个字符串? 也许有点矫枉过正,但如果以上所有都不起作用,这可能是最后的手段。 (我强烈建议你弄清楚为什么isEqual不起作用。
答案 3 :(得分:0)
使用isEqual方法:
if ([[sfield1 currentTitleColor] isEqual: [UIColor greenColor]])
现在你只是等于内存地址,显然不相同,因为它们不是完全相同的对象。
答案 4 :(得分:0)
试试这个[[sfield1 currentTitleColor] isEqual: [UIColor greenColor]];
答案 5 :(得分:0)
[[yourfeild currentTitleColor] isEqual:[UIColor yourcurrentcolor]];
你只是等于内存地址,显然不相同,因为它们不是完全相同的对象。
答案 6 :(得分:0)
在iOS 5&之后,UIColor
为HSL和RGB颜色系统提供了getter,因此您可以编写一个实用程序函数来比较两种给定颜色的函数...
或者,您是否尝试过比较两种颜色的CIColor属性?