Определение размера UIView в данной ориентации - PullRequest
3 голосов
/ 30 июня 2011

Мне нужно вычислить высоту UILabel при вращении устройства, чтобы я мог настроить его рамку, чтобы установить соответствующую высоту, необходимую для отображения его текста.

Я хочу, чтобы сброс кадра был как можно более плавным, поэтому я попытался выполнить расчет и установку кадров в willRotateToInterfaceOrientation: duration: метод. Однако в этом методе границы суперпредставления UILabel по-прежнему действительны для старой ориентации.

Когда я делаю те же вызовы в didRotateToInterfaceOrientation: duration: метод, установка кадров не очень плавная и выглядит немного вялой (но, по крайней мере, я могу сделать правильные вычисления, используя superviews bounds.width).

Теперь к моему вопросу: есть ли способ определить ширину UIView в данной InterfaceOrientation, чтобы я мог выполнить вычисления, описанные выше? Я хочу сделать это как можно более универсальным, поскольку буду использовать код на iPad и iPhone.

Если это невозможно, есть ли элегантный способ сделать то, что я описал выше?

Спасибо.

1 Ответ

2 голосов
/ 30 июня 2011

Подкласс UIView для вашего основного вида и переопределить layoutSubviews.Интерфейсы will / didRotate не очень полезны.

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