Когда использовать xib и когда использовать ContainerView? - PullRequest
0 голосов
/ 17 декабря 2018

Я хочу знать, когда использовать xib, а когда использовать UIContainerView?

Я не нашел ни одной статьи по этой теме в сети.В чем различия и в чем их применение?

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Давайте сначала поговорим об определениях:

  • Файл XIB представляет собой графическое представление экрана / представления.
  • UIContainerView - это именно то, что он говорит, это представление, которое будет содержатьКонтроллеры дочерних представлений.

Таким образом, очевидно, что они не будут использоваться одинаково.
Файл XIB - это базовый файл, который вы создаете в Xcode, ссылка на UIViewControllerи в котором вы можете перетаскивать элементы для создания своих экранов.

UIViewContainer является одним из этих перетаскиваемых элементов и просто предназначен для того, чтобы быть зарезервированным пространством в вашей xib (или раскадровке, если вы используете его вместо этого), в которомВы можете легко «встроить» другой UIViewController.

Вы иногда добавляете дочерний UIViewController в свой основной UIViewController?Вы могли бы сделать что-то вроде этого в коде:

  • Создание второго контроллера
  • Добавить представление второго контроллера как подпредставление в главном контроллере
  • Добавить второй контроллер в качестве дочернего элемента основногоcontroller
  • Создайте ограничения, чтобы представление точно указывало, где это было задумано

Итак, UIContainerView здесь, чтобы делать именно это, только теперь вам не нужно делать это в коде, вы можетеперетащите UIContainerView в вашу XIB / раскадровку и подключите туда второй контроллер напрямую!

0 голосов
/ 17 декабря 2018

Вы можете использовать .xib файл дизайна для автономного View (например, custom datePickerView, CustomAlertView, customViews и т. Д.).Использование может использовать это class там, где вы хотите.

Но ContainerView, вы можете создать с UIViewController на storyboard, и он автоматически создаст свой собственный вид для вас.

Это встроено с одним ViewController.

...