今天用CollectionView实现的列表效果不理想,一直不知道问题出现在那里
![img_3d46d73211a5a8ecc12a3c74d4e4c06a.png](https://i-blog.csdnimg.cn/blog_migrate/3e6a343fc45c0a618348ea5958487b18.png)
改变下面2个方面也不行:
//定义每个UICollectionViewCell 的大小
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
CGSize size = CGSizeMake(80,80);
return size;
}
//定义每个Section 的上左下右的四边间距
-(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{
return UIEdgeInsetsMake(15, 15, 5, 15);//分别为上、左、下、右
}
最后才明白,那个间距是cell之间的间距(通过设置背景色发现的-.-),要另外设置:
//这个是两行之间的间距(上下cell间距)
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section;
//这个方法是两个之间的间距(同一行cell的间距)
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section;
也可以用在这个layout设置为0:
UICollectionViewFlowLayout* layout = [[UICollectionViewFlowLayout alloc]init];
layout.minimumLineSpacing = 0.0f;
最后实现效果,至于原理,为什么苹果会自动给间距呢?我理解是因为,collection本来就是用来做一个分视图的效果的,所以默认留20的间距吧。(因为要实现 一个流水式的热点关键字布局,所以用collectionView,合理吗?求指点)
![img_01111339c9b31712f365291e5fc15200.png](https://i-blog.csdnimg.cn/blog_migrate/d29b0bf8e873f6fcdad09d9552e54948.png)
- 如果有什么疑问,可以在评论区一起讨论;
- 如果有什么不正确的地方,欢迎指导!
> 注:本文首发于iHTCboy's blog,如若转载,请注明来源。