2013-02-28 63 views
1

我已经建立了一套自定义颜色在我的应用程序使用,如石灰我挣扎比较,我已经做

mylimeColor = [UIColor colorWithRed:0.502 green:1.000 blue:0.000 alpha:1.000]; 

设置的东西这个颜色的作品罚款的UIColor,但我当我想要改变某些事物时,我的应用程序稍后会陷入困境,这取决于视图中具有哪些自定义颜色。 我使用没有问题如下:

if (bgColor == [UIColor redColor]) { 
// do something 
} 

但只要我开始用我自己的颜色打破。

if (bgColor == myredColor) { 
// do something 
} 

我可以检查在NSLog中的背景颜色,它看起来完全如我所料。

有没有另一种方法让我找出什么东西(UIView,UITextFeild等)的背景是什么?我在网上看过,但似乎只是找到帮助设置我的自定义颜色,这对我来说不是问题。

我的下一步将是设置一个整数到每个颜色的具体数字,然后检查,但似乎比较颜色本身将是一个更好的方式做到这一点。

感谢您的帮助!

+0

我觉得你的代码块在错误的地方。在第一种情况下[UI​​Color redColor]和第二种代码myredColor应该在那里根据你的问题。 – 2013-02-28 03:18:54

+0

你说得对,我会编辑它,让人们在将来找到这个时更加清楚。 OMG。 – 2013-02-28 03:51:10

回答

7

UIColor是一类。使用isEqual:来比较颜色。

+0

OMG。我不敢相信我没有注意到这一点!我认为这只是表明现在是我休息一下并停止盯着这段代码的时候了。谢谢!! – 2013-02-28 03:52:56

+0

顺便说一句:以这种方式比较颜色时要小心,因为它们必须在相同的颜色模型中才能被视为相等。例如,'#ffffff'不等于'[UIColor whiteColor]' – leviathan 2014-03-18 12:21:34