关闭

在collection view中加入 NavigationController问题

218人阅读 评论(0) 收藏 举报

在开发过程中用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;

这样问题就修复了。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4652次
    • 积分:141
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:10篇
    • 译文:0篇
    • 评论:1条
    文章分类