2010-04-22 26 views
1
UILabel *templabel = [self.wallBoxArray objectAtIndex:i]; 

for(int i = 0 ; i < [self.wallBoxArray count]; i++) 
{ 
    if(templabel.backgroundColor == [UIColor greenColor]) 
    { 
    NSLog(@"the color isn green"); 
    } 
} 

我的阵列中有很多标签。它们都以绿色初始化。但我这样判断,为什么不能打印“颜色不是绿色的”如何判断UILabel的颜色?

+0

我注意到,您一直在编辑放置答案到问题本身。这不是底色;如果你有答案,然后将其作为答案,如果其他人回答你的问题,这是最有用的标记是正确的,使用绿色复选标记 – 2014-01-12 21:29:44

+0

@RichardTingle Hey richard,你知道我的帐户被禁止再提问。虽然我已经阅读了“帮助”中心,但我仍然无法找到原因。我试图让我的旧问题和答案更清楚。你能帮我解决吗?非常感谢! – 2014-01-14 07:30:18

+0

看着你的个人资料;它必须来自删除的问题。你的很多问题是否已被删除? – 2014-01-14 07:45:08

回答

4

的的UIColor类集群实现-isEqual:,所以你可以只使用

if([templabel.backgroundColor isEqual:[UIColor greenColor]]) 
    ... 
+0

哈,对,忘了那个...... *手掌 - >额头* – 2010-04-28 21:20:45

1

你正在执行一个指针比较,所以如果颜色都是绿色的,但是UIColor的不同实例,这将失败。 。因为UIView的的backgroundColor属性是复制属性

@property(nonatomic, copy) UIColor *backgroundColor 

我有点惊讶这是令人费解的,但要检查相等,请尝试以下操作:的

CGColorEqualToColor([templabel.backgroundColor CGColor], [[UIColor greenColor] CGColor]) 

这是检查平等颜色值,而不仅仅是指针比较,还记得呃检查字符串时要做[str compare:otherString] == NSOrderSame

+0

或'[str isEqualToString:otherString]'。 – 2010-04-28 20:32:01