Следующая функция определяет, является ли прямоугольник CGSize в первом параметре помещается полностью в пределах или в объеме прямоугольника CGSize во втором параметре.
- (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)
);
}
Вместо того, чтобы писать полную логику себя трудно читать условные операторы, вы можете использовать встроенные, встроенные вспомогательные функции, чьи имена носят описательный.
Хотя я еще не проводил исследования, этот метод, вероятно, медленнее в исполнении, чем принятый ответ, поскольку он включает в себя преобразование двух CGSizes в две структуры CGRects C. Хотя у этого есть преимущество, чтобы быстрее понять читателя.
Это зависит от того, как вы определяете «меньше». Поскольку у вас есть два измерения, они оба должны быть меньше? Или просто высота? Только ширина? Или, возможно, область определенного прямоугольника? – lnafziger
меньше по меньшей мере 1 размер меньше, а второе измерение не больше (может быть равным). –
Итак, общая площадь не имеет значения? Если у вас есть одна коробка размером 100x100, а другая - 101x25, то по вашему определению она больше? – lnafziger