在collection view中加入 NavigationController问题

本文解决iOS7中使用collectionView集合视图时,导航栏遮挡部分内容的现象。通过在viewDidLoad方法中设置self.edgesForExtendedLayout=UIRectEdgeNone;来调整布局,并设计collectionView大小以确保界面完整显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

这样问题就修复了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值