ビューのフレームが指定された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')
というエラーが発生しました。 2つのCGRect
sを単純に比較できないのはなぜですか?
これを使って:
if (CGRectEqualToRect(self.view.frame, rect)) {
// do some stuff
}
CGRectEqualToRect()については ドキュメント をご覧ください。
bool CGRectEqualToRect ( CGRect rect1, CGRect rect2 );
Swift 3では、次のようになります。
frame1.equalTo(frame2)
In 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