So sánh hai CGRects


95

Tôi cần kiểm tra xem khung của chế độ xem của tôi có bằng CGRect đã cho hay không. Tôi đã thử làm như thế này:

CGRect rect = CGRectMake(20, 20, 20, 20);
if (self.view.frame == rect)
{
    // do some stuff
}

Tuy nhiên, tôi gặp lỗi khi nói Invalid operands to binary expression('CGRect' (aka 'struct CGRect') and 'CGRect'). Tại sao tôi không thể so sánh đơn giản hai CGRects?

Câu trả lời:


250

Dùng cái này:

if (CGRectEqualToRect(self.view.frame, rect)) {
     // do some stuff
}



2

Trong Swift chỉ cần sử dụng các toán tử ==hoặc phù !=hợp với tôi:

    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")
    }

gỡ lỗi bản in bảng điều khiển:

not equal
equal
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.