Comments 9
почему не
loadView
?0
обычно мы добавляем вьюхи поверх дефолтового вью, и делаем это после того, как это вью создано (viewDidLoad). В общем-то, никто не запрещает делать иначе, т.е. провайдить свою кастомную вьюху контроллеру внутри loadView().
0
но зачем все эти сложности с растягиванием своей вьюхи, с поддержкой UIScrollView и тд, если Apple придумал простой механизм специально для этого?
0
не понял вопроса, сори :) а в примере используется UICollectionView
0
что сделано сейчас:
при этом:
* есть ненулевая вероятность обратиться к
* образуется никому не нужный «контейнер» из пустой
Для этого был создан метод
Я обычно делаю так:
при этом и
friendsListView
создаётся в viewDidLoad
. Нужно создать инстанс, добавить его в self.view, «растянуть» от края до краяпри этом:
* есть ненулевая вероятность обратиться к
friendsListView
до её создания, например где-то между init
и viewDidLoad
, вместо порождения процесса загрузки вьюхи будет падение* образуется никому не нужный «контейнер» из пустой
self.view
. Это может порождать проблемы в случае, если friendsListView
это UIScrollView
. При глубокой вложенности таких контроллеров, система может перестать понимать, что этой UIScrollView нужно автоматически добавлять верхние/нижние инсеты для navigationBar/tabBar/etc.Для этого был создан метод
loadView
.Я обычно делаю так:
class FriendsListViewController: UIViewController {
private var infoView: FriendsListView!
var infoView: FriendsListView {
return view as! FriendsListView
}
override func loadView() {
view = FriendsListView()
}
}
при этом и
self.view
, и self.infoView
будут порождать загрузку view, не нужно никуда ничего руками добавлять и растягивать, нет проблем с перегруженностью иерархии view.0
Спасибо за статью. А как вы реализуете UI который должен показываться/скрываться в зависимости от модели? Если у нас модель состоит из 100 полей (не однородных как для таблицы, а разных), то каким образом View должна обновлять представление? Строить все 100 индивидуальных компонентов (иконка, текст, кнопка или что-то еще) для 100 полей ViewModel и скрывать/показывать их в зависимости от ViewModel?
0
привет! можно оперировать абстракциями, например, как мы делаем это в Chatto: github.com/badoo/Chatto/tree/master/ChattoApp/ChattoApp/Source/Chat%20Items, где есть пример похожей реализации ЮИ с разными типами элементов в коллекции: Text Message, Photo Message,…
0
Хотел задать вопрос почему вы не пользуетесь NSNotifications и NSNotificationCenter а определяете свой протокол?
0
Sign up to leave a comment.
Компонентная архитектура UI в iOS-приложении