Comparando dois CGRects


95

Eu precisava verificar se o quadro da minha visão é igual a um determinado CGRect. Tentei fazer assim:

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

No entanto, recebi um erro ao dizer Invalid operands to binary expression('CGRect' (aka 'struct CGRect') and 'CGRect'). Por que não posso simplesmente comparar dois CGRects?

Respostas:


250

Usa isto:

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



2

No Swift, simplesmente usar os operadores ==ou !=funciona para mim:

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

depurar impressões do console:

not equal
equal
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.