UIView vs Контейнерный Вид
Итак, вот проблема, которую я пытаюсь решить.
В каждом
viewController
Я пытаюсь вставить рекламу и фактические элементы управления. Я закончил пару уроков на raywenderlinch.com, чтобы понять, как люди профессионально размещают рекламу в своем приложении. Они использовали UIViews, чтобы иметь два представления под mainview контроллера представления. Таким образом, я полностью понял, что одинsubview
удерживать рекламу, а другой содержит фактическое содержимое приложения. если объявление загружено, зайдите на экран, иначе пусть у другого просмотра будет вся доступная область.
После того, как я вернулся в xcode, я начал программировать так, как там учился. но когда я бросал UIView
на раскадровке я видел containerView
Я думаю, что не было, когда учебник был написан.
Поэтому я здесь, чтобы спросить об обоих подходах, их плюсах и минусах.
Так что в основном его UIView
против ContainerView
, Какой путь я должен сделать и почему?
Любая помощь будет принята с благодарностью.
3 ответа
Ты используешь UIView
когда у вас уже есть представление и вам не нужно иметь выделенный контроллер представления для построения и обработки взаимодействий внутри него.
Со страницы помощи UIView:
Объект UIView претендует на прямоугольную область своего окружения
superview
(его родитель в иерархии представления) и отвечает за все рисование в этом регионе...
Упрощенная структура: YourViewController --- (имеет) ---> UIView
Ты используешь UIContainerView
когда вам нужно встроить другой контроллер представления в тот, который у вас уже есть. Встроенный контроллер представления отвечает за возврат представления для области, в которой UIViewContainer
занимает. Поэтому ваш UIContainerView
знает, какой контроллер представления использовать для рендеринга UIView
внутри региона он занимает.
Со страницы справки UIContainerView:
Контейнерное представление определяет область в подграфе представления контроллера представления, которая может включать дочерний контроллер представления.
Упрощенная структура: YourViewController --- (имеет) ---> SubViewController --- (имеет) ---> UIView
Этот SubViewController возвращает представление и обрабатывает его события.
В качестве альтернативного ответа вы также можете рассмотреть вариант использования вместо технических различий. Например: зачем использовать вид контейнера?
Обычное использование представлений контейнера - это повторное использование (совместное использование) представления непосредственно в раскадровке. Ранее повторное использование представления требовало создания отдельного файла "xib" и программного добавления этого представления при загрузке контроллера представления.
Приведенное выше изображение взято из этого чрезвычайно простого и понятного руководства, в котором рассказывается, как настроить представление контейнера, которое совместно используется двумя контроллерами представления.
Несколько других мыслей о том, когда его использовать:
- Панель навигации является частью UINavigationController, который является контроллером представления контейнера. Итак, если вы хотите создать собственную альтернативу, вы, вероятно, будете использовать контейнерное представление.
- Контейнер может помочь в любое время, когда вы хотите временно показать сложное представление поверх вашего текущего VC, но не можете / не хотите представлять другой VC модально. Этот подход все еще позволяет вам создавать это временное представление в конструкторе интерфейсов, устанавливать для него автоматические ограничения макета и т. Д.
- Я также нашел руководство, объясняющее, что есть способ переключать различные виды контейнеров в зависимости от ситуации, позволяя вашему VC иметь подразделы, которые являются очень динамичными, но без необходимости создавать эти подразделы программно. Картинка из этого руководства, демонстрирующая то, что я имею в виду:
Надеюсь, это поможет людям, которые пытаются выяснить, когда к ним применяется представление контейнера. Если у вас есть другие примеры использования, пожалуйста, отредактируйте / добавьте их или оставьте в комментариях!
Если вы видите подробно эти контейнерные представления типа класса UIView. Чтобы понять, почему нам нужен containerView, вы должны увидеть ниже часть
В большинстве случаев контроллер представления контейнера похож на контроллер представления содержимого. Он управляет представлениями и контентом, координирует действия с другими объектами в вашем приложении и отвечает на события в цепочке респондента. Перед разработкой контроллера контейнера вы должны быть уже знакомы с разработкой контроллеров представления содержимого. Вопросы дизайна в разделе "Создание пользовательских контроллеров представления содержимого" также применяются при создании контейнеров.
для более подробной информации о контейнере перейдите по ссылке Но прежде чем начать, вы должны иметь представление о
а также вы можете проверить этот учебник о том, как использовать вид контейнера.
Таким образом, вы можете пойти на оба подхода. Надеюсь, что это поможет вам. счастливого кодирования:)