2016-05-02 9 views
0

Я уже несколько недель разрываю голову над этим. Я знал, что пришло время спросить вас, ребята, попробовав каждую комбинацию :)Autolayout с несколькими контейнерными элементами с динамическим расположением в UIScrollView

My MainViewController имеет несколько частей для новостей, друзей, профиля и т. Д., Работающих как сводная страница для действий пользователя. Я хочу реализовать эти разные части как отдельные ViewController, так как иначе это будет смешивать яблоки и груши. Правильно? И, очевидно, они должны войти в UIScrollView, потому что они будут длиннее высоты экрана.

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

Можете ли вы привести меня к правильной стратегии о том, как это сделать? Я хочу использовать раскадровку. Если это невозможно, я могу сделать все это и в коде. Я считаю, что сложная часть состоит в том, чтобы установить правильные ограничения в подземельях MainViewController (UIScrollView, UIView, UIContainerView) и как-то передать высоту ChildViewController в соответствующем месте.

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

+0

Я думаю, вы должны установить фиксированное ограничение высоты на эти виды и изменить постоянное значение этого ограничения в соответствии с вашими потребностями. – almas

+0

Похоже, вам нужен UIStackView. Он автоматически разбивает контент на основе их собственного размера и даже оживляет изменения. Вы также можете поместить его в UIScrollView. – Clafou

+0

@almas Итак, вы говорите, что я должен создавать ограничения высоты IBOutlet для childVCs (нужно ли им устанавливать ограничения на размещение?), И где я буду обновлять ограничения? Внутри серверного вызова childVC? – aytunch

ответ

0

По моему опыту использования UIScrollView Я бы почти в 99% случаев не рекомендовал их. Их трудно использовать с автоматической компоновкой, и их можно легко сломать небольшими изменениями. Они также очень раздражают использование в IB, поскольку вы не можете прокручивать его содержимое.

Для этого дизайна я предпочел бы использовать UITableView со статическими ячейками (исходя из предположения, что ваше представление будет содержать одну и ту же информацию для каждого элемента/лица); каждый из которых содержит Container View для ваших разных контроллеров представлений.

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

 Смежные вопросы

  • Нет связанных вопросов^_^