Самый эффективный способ, чтобы представление UIViewController заполняло все используемое пространство? - PullRequest
1 голос
/ 16 апреля 2019

У меня есть универсальное приложение с одним представлением, у которого UINavigationBar toolbar внизу, тогда UIViewController view занимает оставшееся пространство.

Я обычно делаю все программно, поэтому я долгое время вычислял UIViewController's view frame вручную в loadView, принимая во внимание все компоненты, которые могло иметь устройствот.е. высота индикатора дома на новом устройстве iPhone, непрозрачная строка состояния на старых устройствах.

Однако, со всеми новыми устройствами я нахожу этот способ неэффективным и задумался о переходе на раскадровку или xib.Я никогда не работал с ними, поэтому я не понимаю, как это работает.Например, если я создаю раскадровку с видом ViewController, принимающим весь размер используемой области, будет ли это переводиться для всех устройств?Правильно ли изменится размер при вращении?

В общем, мне интересно, каков самый элегантный / эффективный способ создания приложения, в котором UIViewController's view занимает всю полезную областьэкран на всех устройствах, в том числе когда телефон вращается?

1 Ответ

1 голос
/ 16 апреля 2019

Я обычно все делаю программно, поэтому я долгое время вычислял фрейм вида UIViewController вручную в loadView

Никогда в этом не было необходимости;Вы можете просто удалить этот код.Контроллер навигации сам предоставит своему дочернему контроллеру представления правильную рамку!

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

В общем, мне интересно, каков самый элегантный / эффективный способ создания приложения, в котором вид UIViewController занимает всю полезную площадь экрана на всехустройства, в том числе, когда телефон вращается?

Элегантный эффективный способ: ничего не делать.Это то, что уже происходит, автоматически, без вашего участия.

...