У меня есть контроллер навигации и контроллер вида внутри контроллера навигации.Контроллер представления вызывает контроллер навигации, чтобы выдвинуть представление:
`MYVC *myvc = [MYVC new]`;
`[self.navigationController pushViewController:myvc
animated:YES]`;
Внутри MYVC
У меня есть следующая логика для разметки моего представления коллекции:
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
_collectionView.frame = CGRectMake(0,
0,
self.view.frame.size.width,
self.view.frame.size.height - height);
}
Это прекрасно работаеткогда я впервые загружаю свой vc, поскольку представление коллекции загружается под моей навигационной панелью.Однако, когда я нажимаю на VC, это выглядит следующим образом:
Над разделительной линией находится моя панель навигациии красный - мой общий взгляд.Похоже, что представление коллекции выложено под моей панелью навигации.Если я перетаскиваю свою коллекцию, она отображается правильно.Если я попытаюсь изменить положение у _collectionView
фрейма на self.navigationController.navigationBar.frame.size.height
, то получу большой пробел над видом коллекции после перетаскивания вида коллекции.Как я могу сделать так, чтобы он был правильно выложен в первый раз?Нужно ли форсировать макет?Есть ли какая-то причина, по которой моя навигационная панель не учитывается для виртуального канала, пока я не перетащу в представление прокрутки?