UICollectionView под панелью навигации, когда отображается как страница в UIPageViewController

У меня есть приложение для iOS 7 с UIPageViewController. Каждая страница, которую он отображает, имеет UICollectionView, который занимает всю страницу, за исключением панели навигации. iOS 7 обычно настраивает вставки краев представления коллекции таким образом, чтобы они располагались под панелью навигации и уходили под нее при прокрутке вверх.

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

Кто-нибудь знает, как вы должны настроить представление коллекции внутри контроллера просмотра страницы в iOS 7?


person lehn0058    schedule 21.02.2014    source источник


Ответы (1)


У меня была такая же проблема, и из-за разочарования я сделал это:

В UIPageViewController я добавил:

[self setEdgesForExtendedLayout:UIRectEdgeAll];

и в представлении коллекции viewDidLoad:

if ([self respondsToSelector:@selector(topLayoutGuide)]) {
    UIEdgeInsets currentInsets = self.collectionView.contentInset;
    self.collectionView.contentInset = (UIEdgeInsets){
        .top =64,
        .bottom = currentInsets.bottom,
        .left = currentInsets.left,
        .right = currentInsets.right
    };
}

В раскадровке я отключил все «Расширенный край» и «Настроить вставки прокрутки» для обоих представлений. Не совсем элегантное решение, но оно работает.

person null    schedule 24.02.2014