我有一个UICollectionView,在宽度上适合3个单元格(并垂直滚动)。当我改变设备的旋转时,集合视图会稍微伸展,并且单元格间距也会增加一些。然而,左边的单元格捕捉到左边距,右边的单元格捕捉到右边距,中心单元格保持居中。
我更喜欢两边都有一个边距,与单元格之间的距离相等,所以看起来间隔较小。
我尝试调用[collectionView setContentInset:UIEdgeInsetsMake(0, 10, 0, 10)];
,但这只是向视图添加了一个水平滚动,而不是近似单元格。
如何在不改变滚动视图尺寸的情况下添加边距?
答案 0 :(得分:0)
我明白了。我不得不添加这个委托方法:
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
return UIInterfaceOrientationIsPortrait([self interfaceOrientation]) ? UIEdgeInsetsMake(0, 22, 0, 21) : UIEdgeInsetsMake(0, 0, 0, 0);
}
并刷新- willRotateToInterfaceOrientation:duration:
上的集合视图:
[[_collection collectionViewLayout] invalidateLayout];
[_collection reloadData];