我有一个iOS 7应用程序,它有一个UIPageViewController。它显示的每个页面都有一个UICollectionView,它占用整个页面,导航栏除外。 iOS 7通常会调整集合视图边缘插图,使其位于导航栏下方,并在向上滚动时位于其下方。
但是当我的集合视图显示在UIPageViewController中时,它的边缘插入没有被调整,因为导航栏由页面视图控制器拥有,而不是集合视图所在的页面。我试图在集合视图上设置边缘插入,但随后它将集合视图的底部推离屏幕。
有谁知道如何在iOS 7中的页面视图控制器中设置集合视图?
答案 0 :(得分:2)
我遇到了同样的问题,出于挫败感,我最终做到了这一点:
在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
};
}
在故事板中,我禁用了两个视图的所有“扩展边缘”和“调整滚动视图插入”。 不完全是一个优雅的解决方案,但它确实有效。