Confronto tra due CGRect


95

Avevo bisogno di verificare se la cornice della mia vista è uguale a un dato CGRect. Ho provato a farlo in questo modo:

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

Tuttavia, ho ricevuto un errore che diceva Invalid operands to binary expression('CGRect' (aka 'struct CGRect') and 'CGRect'). Perché non posso semplicemente confrontare due CGRects?

Risposte:


250

Usa questo:

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



2

In Swift il semplice utilizzo degli operatori ==o !=funziona per me:

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

stampe della console di debug:

not equal
equal
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.