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