Обнаружение повернутой ширины / высоты UIView после изменения ориентации - PullRequest
0 голосов
/ 13 января 2012

Я хотел бы иметь возможность проверить экземпляр UIView, который мог или не мог быть повернут относительно своей первоначальной ориентации (например, пользователем, поворачивающим устройство) и определить, каковы "истинные" ширина и высота.«истинно» в данном случае означает, что если бы на iPad с портретной ориентацией перед вращением было 768x1024, то после поворота вбок я бы вычислил, что новая ширина была 1024, а новая высота 768.

Похоже, что еслиЯ применяю преобразование представления к его свойству кадра следующим образом:

CGRect rotated = CGRectApplyAffineTransform([myview frame], [myview transform);

Я получаю желаемый результат.Однако в документации Apple говорится, что UIView :: frame не определен, если преобразование для представления не является преобразованием идентичности, поэтому, возможно, не стоит полагаться на этот расчет?

Ответы [ 2 ]

5 голосов
/ 04 июля 2012

view.bounds вернет желаемое прямоугольник

view.frame вернет прямоугольник с transfrom, примененным к границам вместе с положением.

0 голосов
/ 21 января 2012

Ну, из-за недостатка ввода, я собираюсь пойти с моим решением использования:

CGRect rotated = CGRectApplyAffineTransform([myview frame], [myview transform);

Чтобы получить правильно ориентированное ограничениеЕсли у кого-то есть другое решение или он может подтвердить, что это безопасно, я назову ему ответ вместо этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...