1. 这两个属性和collectionView的滚动方向有关系:滚动方向相同的间距为minimumLineSpacing 垂直的minimumInteritemSpacing
2. cell排列顺序: 和滚动方向垂直(以左上角为基准)依次排列 水平滚动:从上到下 依次排列 垂直滚动:从左到右依次排列
// line 跟滚动方向相同的间距
// item 跟滚动方向垂直的间距
3,UICollectionView 已经设置 minimumInteritemSpacing, minimumLineSpacing 两个属性为 0, 依然有空隙,怎么解决?
考虑:必须保证collectionView的宽度必须是cell宽度(如果有space需要是cellW+itemSpace的整倍数)的整倍数,即一行能放下整数个cell
例:滑动方向为垂直方向,itemSpace是10,itemSize是屏幕宽度/3或者itemSize为{90,90} ,collectionView的宽度不是它的整数(或者不是cellW+space的整倍数)
flowLayout.itemSize= (CGSize){(SCREEN_WIDTH)/3,90}
flowLayout.scrollDirection = UICollectionViewScrollDirectionVertical;
// flowLayout.minimumLineSpacing = 0; line是跟滚动方向相同的间距
flowLayout.minimumInteritemSpacing = 10;
由于item之间还有10的间距,导致一行放不下屏幕宽度/3的item,这时系统就会自动只放两个,分别显示在左右两边,剩下的空间作为itemSpace显示在中间,如图:
应该把代码改为
flowLayout.itemSize= (CGSize){ ( SCREEN_WIDTH - 10*2)/3,90}
网友评论