Сравнение двух CGRects



мне нужно было проверить, равен ли кадр моего представления заданному 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'). Почему я не могу просто сравнить два CGRects?

544   4  

4 ответов:

используйте этот:

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

посмотреть документация для CGRectEqualToRect ().

bool CGRectEqualToRect ( CGRect rect1, CGRect rect2 );

в Swift 3 это будет:

frame1.equalTo(frame2)

в 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

Comments

    Ничего не найдено.