2012-10-13 4 views
85

Je devais vérifier si le cadre de ma vue est égal à un CGRect donné. J'ai essayé de le faire comme ceci:Comparaison de deux CGRects

CGRect rect = CGRectMake(20, 20, 20, 20); 
if (self.view.frame == rect) 
{ 
    // do some stuff 
} 

Cependant, je suis une erreur en disant Invalid operands to binary expression('CGRect' (aka 'struct CGRect') and 'CGRect'). Pourquoi ne puis-je simplement comparer deux CGRect s?

Répondre

217

Utilisez ceci:

if (CGRectEqualToRect(self.view.frame, rect)) { 
    // do some stuff 
} 
+7

+1 pour la réponse plus concrète –

+0

+1 comme ci-dessus. – ManicMonkOnMac

39

Voir the documentation pour CGRectEqualToRect().

bool CGRectEqualToRect (CGRect rect1, CGRect rect2); 
4

Dans le Swift 3 serait:

frame1.equalTo(frame2) 
+1

Ou en utilisant le bon ol ''==' opérateur. –