当我将我的应用程序放在iOS 7中时,顶部单元格会被我的导航栏覆盖。 我尝试使用edgesForExtendedLayout但它只是给我一个iOS 6外观的应用程序。 我正试图利用iOS 7中的半透明条,但edgeForExtendedLayout没有帮助。
有没有办法让这个单元格显示在导航栏的下方?
答案 0 :(得分:1)
您有几种选择。 UICollectionView
是UIScrollView
的子视图。
最简单的方法是将视图控制器转换为UICollectionViewController
的子类,它会自动处理这些问题。更多信息here。
如果您不能,请在视图控制器中将automaticallyAdjustsScrollViewInsets
设置为YES
,或者在viewDidLayoutSubviews
中手动设置集合视图的contentInsets,如下所示:
- (void)viewWillLayoutSubviews
{
[super viewWillLayoutSubviews]
[_collectionView setContentInset:UIEdgeInsetMake(self.topLayoutGuide.length, 0, self.bottomLayoutGuide.length, 0)];
[_collectionView setScrollIndicatorInsets: _collectionView.contentInset];
}
使用UICollectionViewController
的其他好处是useLayoutToLayoutNavigationTransitions
的支持,它可以在集合视图布局之间创建很酷的过渡(例如,Apple的移动日历应用程序)。