iOS, как найти большее измерение CGRect?

Я знаю, что основная графика имеет ряд вспомогательных функций, таких как CGRectGetMidX. Я работаю с автомакетом и использую такой код, как

    float height = self.view.bounds.size.height * 0.08;
    UIImageView* key = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,height,height)];

Я могу использовать тернарный оператор, но он выглядит очень уродливым и нечитаемым:

float dimension = (self.view.bounds.size.height> self.view.bounds.size.width ?  self.view.bounds.size.height: self.view.bounds.size.width) * 0.08;
UIImageView* key = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,dimension,dimension)]

Есть ли способ заменить self.view.bounds.size.height на функцию для получения максимального размера прямоугольника, например getMaxDimension(self.view.bounds)?

Я знаю, что могу написать свой собственный с операторами if, но мне интересно, есть ли в iOS что-то, что позволяет мне делать это с помощью одной встроенной функции, чтобы я мог использовать один и тот же подход в нескольких проектах.


person Alex Stone    schedule 29.07.2015    source источник


Ответы (1)


Я думаю

MAX(CGRectGetWidth(self.view.bounds), CGRectGetHeight(self.view.bounds));

вероятно, самый читаемый код, который вы получите от встроенных функций. Геометрические функции: https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CGGeometry/ MAX — это макрос из среды выполнения target-c. Если вы хотите, чтобы код был более читаемым, просто напишите свою собственную функцию.

person Stefan    schedule 29.07.2015