在collection view中加入 NavigationController问题

在开发过程中用collectionView集合视图的时候,用navgationController跳转会出现导航栏掩盖部分内容现象,

这时候需要在viewDidLoad里面填写

<strong><span style="font-size:18px;">self.edgesForExtendedLayout = UIRectEdgeNone;</span></strong>

然后会发现下面也不能全部显示,总是需要往上拖一下才显示出来,但是一松手又会被遮住

这个时候需要设计整个collectionView的大小了

self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height-64)]

 

然后再运行会发现上下都正好合适




_____________________________________________________________________________________________________________________________________________

在iOS 7中,苹果引入了一个新的属性,叫做[UIViewController setEdgesForExtendedLayout:],它的默认值为UIRectEdgeAll。当你的容器是navigation controller时,默认的布局将从navigation bar的顶部开始。这就是为什么所有的UI元素都往上漂移了44pt。


修复这个问题的快速方法就是在方法- (void)viewDidLoad中添加如下一行代码:

>
self.edgesForExtendedLayout = UIRectEdgeNone;

这样问题就修复了。


阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

在collection view中加入 NavigationController问题

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭