我需要检查我的视图框架是否等于给定的CGRect。我试着这样做:
CGRect rect = CGRectMake(20, 20, 20, 20);
if (self.view.frame == rect)
{
// do some stuff
}
但是,我收到错误Invalid operands to binary expression('CGRect' (aka 'struct CGRect') and 'CGRect')
。为什么我不能简单地比较两个CGRect
s?
答案 0 :(得分:241)
使用此:
if (CGRectEqualToRect(self.view.frame, rect)) {
// do some stuff
}
答案 1 :(得分:40)
有关CGRectEqualToRect()的信息,请参阅the documentation。
bool CGRectEqualToRect ( CGRect rect1, CGRect rect2 );
答案 2 :(得分:6)
在Swift 3中它将是:
frame1.equalTo(frame2)
答案 3 :(得分:1)
在Swift中,只需使用==
或!=
运算符即可为我工作:
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")
}
调试控制台打印:
not equal
equal