Как получить реальный размер кадра детального просмотра при использовании UISplitViewController - PullRequest
1 голос
/ 02 сентября 2011

Я немного озадачен этим.

Я пытаюсь программно измерить некоторые элементы интерфейса ...

Размер элементов зависит от размера родительского представления (здесь подробное представление). (Я не хочу использовать маску autosize, просто потому, что не могу получить желаемый результат с этими данными)

При работе в ландшафтном режиме, считывая размер кадра моего текущего вида в UIViewDidAppear, размер, который я получаю, всегда составляет 1024 пикселя в ширину, что, очевидно, не произойдет, когда все будет отображено (это будет быть 1024 минус ширина корневого контроллера (320 пикселей) = 704 пикселей в ширину)

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

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

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

Спасибо

Ответы [ 2 ]

2 голосов
/ 02 сентября 2011

Вы ищете - (void)layoutSubViews см. Этот вопрос: Когда вызывается layoutSubviews?

0 голосов
/ 16 сентября 2011

Обычно, с момента вызова UIViewDidAppear, все было изменено до нормального.Однако, когда вы используете UISplitViewController, запущенный из UITabBarController, сообщение UIViewDidAppear не вызывается, как вы ожидаете.

Эта ситуация не поддерживается в iOS 4 и более ранних версиях.Рекомендации Apple по пользовательскому интерфейсу требуют, чтобы у вас был только один контроллер UIView на экран (исключение составляют UISplitViewController и UITabBarController).Похоже, из iOS 5 эта ситуация будет поддерживаться.

...