[ios] 두 CGRect 비교

내 관점의 프레임이 주어진 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입니까?



답변

이것을 사용하십시오 :

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


답변

CGRectEqualToRect ()에 대한 문서 를 참조하십시오 .

bool CGRectEqualToRect ( CGRect rect1, CGRect rect2 );


답변

Swift 3에서는 다음과 같습니다.

frame1.equalTo(frame2)


답변

Swift에서는 단순히 ==or !=연산자 를 사용하여 작동합니다.

    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


답변