Я хочу убедиться, что CGSize
меньше или равно другому CGSize
. например:
CGSize firstSize = CGSizeMake(1.0,1.0);
CGSize secondSize = CGSizeMake(5.0,3.0);
if(firstSize <= secondSize){
Do Stuff . . .
}
Как бы это сравнить?
Я хочу убедиться, что CGSize
меньше или равно другому CGSize
. например:
CGSize firstSize = CGSizeMake(1.0,1.0);
CGSize secondSize = CGSizeMake(5.0,3.0);
if(firstSize <= secondSize){
Do Stuff . . .
}
Как бы это сравнить?
Определите, входит ли firstSize
в secondSize
без вращения:
if(firstSize.width <= secondSize.width && firstSize.height <= secondSize.height)
Для проверки равенства вы можете использовать CGSizeEqualToSize функцию Apple.
CGSize firstSize = CGSizeMake(1.0,1.0);
CGSize secondSize = CGSizeMake(5.0,3.0);
if(CGSizeEqualToSize(firstSize, secondSize)) {
//they are equal
}else{
//they aren't equal
}
Следующая функция определяет, соответствует ли прямоугольник 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. Хотя это имеет то преимущество, что быстрее читайте читателя.
if(firstSize.width <= secondSize.width && firstSize.height <= secondSize.height &&
firstSize.width*firstSize.height < secondSize.width*secondSize.height)