Comparer deux CGRects

Je devais vérifier si le cadre de ma vue était égal à un CGRect donné. J’ai essayé de faire ça comme ça:

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

Cependant, j’ai eu une erreur en disant des Invalid operands to binary expression('CGRect' (aka 'struct CGRect') and 'CGRect') . Pourquoi ne puis-je pas comparer simplement deux CGRect ?

Utilisez ceci:

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

Voir la documentation de CGRectEqualToRect ().

 bool CGRectEqualToRect ( CGRect rect1, CGRect rect2 ); 

Dans le Swift 3 ce serait:

 frame1.equalTo(frame2) 

En Swift, utiliser simplement les opérateurs == ou != Fonctionne pour moi:

  let rect = CGRect(x: 0, y: 0, width: 20, height: 20) if rect != CGRect(x: 0, y: 0, width: 20, height: 21) { print("not equal") } if rect == CGRect(x: 0, y: 0, width: 20, height: 20) { print("equal") } 

la console de débogage imprime:

 not equal equal