2010-04-22 5 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"); 
    } 
} 

Il y a beaucoup d'étiquettes dans mon tableau. Ils ont tous initialisé avec la couleur verte. Mais j'ai jugé de cette façon, pourquoi ne pas imprimer "la couleur n'est pas verteComment juger la couleur d'UILabel?

+0

J'ai remarqué que vous avez fait des modifications à placer la réponse dans la question elle-même. Ce n'est pas nessisaire; Si vous avez une réponse alors fournissez-la comme réponse, si quelqu'un d'autre répond à votre question et que c'est la marque la plus utile en utilisant la coche verte –

+0

@RichardTingle Hey richard, vous savez qu'il était interdit de poser des questions sur mon compte. Bien que j'ai lu le centre "Aide", mais je ne peux toujours pas trouver les raisons pour lesquelles. J'ai essayé de rendre mes anciennes questions et réponses plus claires. Pourriez-vous m'aider à ce sujet? Merci beaucoup! –

+0

en regardant votre profil; il doit provenir de questions supprimées. Beaucoup de vos questions ont-elles été supprimées? –

Répondre

4

Le cluster de classe UIColor implémente -isEqual:, vous pouvez simplement utiliser

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

hah, à droite, j'ai oublié ça ... * paume-> front * –

1

Vous effectuez une comparaison de pointeur là, donc si les couleurs sont à la fois vert, mais différentes instances de UIColor, cela échouera. . parce que la propriété backgroundColor de UIView est une propriété de copie

@property(nonatomic, copy) UIColor *backgroundColor 

Je suis un peu surpris est que alambiquée, mais pour vérifier l'égalité, effectuez les opérations suivantes:

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

ce vérifie l'égalité des valeur de couleur, pas seulement une comparaison de pointeur. er à faire [str compare:otherString] == NSOrderSame lors de la vérification des chaînes!

+0

Ou '[str isEqualToString: otherString]'. –