CollectionView的显示偏移

当在以下情况时 collectionView的显示会出现偏移

CollectionView所属的控制器是 窗口的根控制器 或者该控制器是受 NavigationController 或 TabBarController所管理 则会发生偏移

偏移效果如图

CollectionView的显示偏移_第1张图片
CollectionView的Bounds值变为-64

代码

UIView* subView=[[UIView alloc]initWithFrame:self.view.bounds];

[self.view addSubview:subView];

Layout* layout=[Layout new];

UICollectionView* cl=[[UICollectionView alloc]initWithFrame:CGRectMake(0, 0, 375, 300) collectionViewLayout:layout];

cl.dataSource=self;

cl.delegate=self;

[cl registerNib:[UINib nibWithNibName:@"Cell" bundle:nil] forCellWithReuseIdentifier:@"cell"];

[subView addSubview:cl];

产生的原因

当我们在我们在Storyboard或者Nib上对NavigationBar进行上色时,运行出来的效果与设计图出现色差,后来才发现是iOS7及以上对导航栏(工具栏亦同)的高斯模糊处理,也就是可以把导航栏后面的视图或者对导航栏的背景(或背景图)显示出来,如果单纯的设置背景颜色也是有高斯模糊处理的效果,会产生色差

所以会把collectionView 向下偏移 20 或者64

解决方法

automaticallyAdjustsScrollViewInsets 设置为 NO

你可能感兴趣的:(CollectionView的显示偏移)