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 Invalid operands to binary expression('CGRect' (aka 'struct CGRect') and 'CGRect')
. Pourquoi ne puis-je pas simplement comparer deux CGRect
s?
Utilisez ceci:
if (CGRectEqualToRect(self.view.frame, rect)) {
// do some stuff
}
Voir la documentation pour CGRectEqualToRect ().
bool CGRectEqualToRect ( CGRect rect1, CGRect rect2 );
Dans le Swift 3 ce serait:
frame1.equalTo(frame2)
Dans Swift en utilisant simplement le ==
ou !=
les opérateurs fonctionnent 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")
}
affiche la console de débogage:
not equal
equal