我可以比较按钮的文字颜色吗?

时间:2012-04-27 05:03:06

标签: iphone uibutton

我使用下面的代码行,但它似乎没有做我期待的事情,即查看按钮标题的标题文字颜色是否为绿色。但是,我没有收到编译错误,因此必须做一些事情:

if ([sfield1 currentTitleColor] != [UIColor greenColor])

有人知道是否有办法进行这种比较?感谢。

7 个答案:

答案 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属性?