当在以下情况时 collectionView的显示会出现偏移
CollectionView所属的控制器是 窗口的根控制器 或者该控制器是受 NavigationController 或 TabBarController所管理 则会发生偏移
偏移效果如图
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
网友评论