Comparing two CGRects
31,077
Solution 1
Use this:
if (CGRectEqualToRect(self.view.frame, rect)) {
// do some stuff
}
Solution 2
See the documentation for CGRectEqualToRect().
bool CGRectEqualToRect ( CGRect rect1, CGRect rect2 );
Solution 3
In the Swift 3 it would be:
frame1.equalTo(frame2)
Solution 4
In Swift simply using the ==
or !=
operators works for me:
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")
}
debug console prints:
not equal
equal
Comments
-
Tim Vermeulen over 3 years
I needed to check wether the frame of my view is equal to a given CGRect. I tried doing that like this:
CGRect rect = CGRectMake(20, 20, 20, 20); if (self.view.frame == rect) { // do some stuff }
However, I got an error saying
Invalid operands to binary expression('CGRect' (aka 'struct CGRect') and 'CGRect')
. Why can't I simply compare twoCGRect
s? -
olx almost 6 years