la seguente funzione determina se il rettangolo del CGSize nel primo parametro si inserisce interamente all'interno o l'estensione del rettangolo del CGSize nel secondo parametro.
- (BOOL)size:(CGSize)smallerSize isSmallerThanOrEqualToSize:(CGSize)largerSize {
return CGRectContainsRect(
CGRectMake(0.0f, 0.0f, largerSize.width, largerSize.height),
CGRectMake(0.0f, 0.0f, smallerSize.width, smallerSize.height)
);
}
Invece di scrivere la logica piena te stesso con difficili da leggere istruzioni condizionali, è possibile utilizzare il built-in, funzioni inline di supporto i cui nomi sono descrittivi.
Mentre non ho effettuato la ricerca, questo metodo è probabilmente più lento in esecuzione rispetto alla risposta accettata poiché implica la conversione di due CGSize in due strutture CGRects C. Sebbene abbia il vantaggio di essere più veloce da comprendere dal lettore.
Dipende da come si definisce "più piccolo". Dal momento che hai due dimensioni, entrambe devono essere più piccole? O solo l'altezza? Solo la larghezza? O forse l'area del rettangolo definito? – lnafziger
minore è almeno 1 dimensione è minore mentre la seconda dimensione non è più grande (potrebbe essere uguale). –
Ok, quindi l'area totale non ha importanza? Se hai una scatola che è 100x100 e un'altra che è 101x25, quindi secondo la tua definizione, è più grande? – lnafziger