Die folgende Funktion bestimmt, ob das Rechteck des CGSize im ersten Parameter paßt ganz innerhalb oder am Umfang des Rechtecks des CGSize in dem zweiten Parameter.
- (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)
);
}
der volle Logik, sich mit schwer zu schreiben bedingten Anweisungen zu lesen, können Sie die eingebaute, Inline-Helferfunktionen, deren Namen sind beschreibende verwenden.
Während ich die Forschung nicht getan habe, ist diese Methode wahrscheinlich langsamer in der Ausführung als die akzeptierte Antwort, da es die Konvertierung der zwei CGSizes in zwei CGRects C-Strukturen beinhaltet. Obwohl es den Vorteil hat, dass es vom Leser schneller verstanden wird.
Es hängt davon ab, wie definieren Sie „klein“. Da Sie zwei Dimensionen haben, müssen beide kleiner sein? Oder nur die Höhe? Nur die Breite? Oder vielleicht der Bereich des definierten Rechtecks? – lnafziger
kleiner ist mindestens 1 Dimension ist kleiner, während die zweite Dimension nicht größer ist (könnte gleich sein). –
Okay, also ist die Gesamtfläche egal? Wenn Sie eine Box haben, die 100x100 ist und eine andere Box, die 101x25 ist, dann ist es Ihrer Definition nach größer? – lnafziger