UICollectionView实现列表,有'非法'间距的原因

今天用CollectionView实现的列表效果不理想,一直不知道问题出现在那里


img_3d46d73211a5a8ecc12a3c74d4e4c06a.png
有间距,但不属于cell的高度

改变下面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
没有间距的效果


- 如果有什么疑问,可以在评论区一起讨论;

- 如果有什么不正确的地方,欢迎指导!

> 注:本文首发于iHTCboy's blog,如若转载,请注明来源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值