У меня есть довольно сложный набор вложенных контроллеров View View, один из которых (глубиной около 5) имеет пользовательские панели, которые генерируются при запуске. У меня есть код, который определяет вращение устройства и переставляет панели соответственно, так что есть 3 панели в ширину на портретной и 4 панели в горизонтальной плоскости. Я сделал это с помощью компонента ширины, а не определения ориентации.
Метод, который перемещает панели (uiscrollview), работает безупречно при вращении и даже при запуске, но получает только портретную высоту при запуске.
Независимо от того, как я получаю атрибут ширины, возвращающий элемент ширины портрета, я пробовал следующее:
float frameWidth = mainPanel.frame.size.width;
float frameWidth = self.view.frame.size.width;
float frameWidth = [[[UIApplication sharedApplication] keyWindow] frame].size.width;
и все равно не повезло!
(основная панель - это просмотр uiscroll, для которого установлено автоматическое растяжение до размера пера)
Это лучший способ сделать это?