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

简介: 今天用CollectionView实现的列表效果不理想,一直不知道问题出现在那里有间距,但不属于cell的高度改变下面2个方面也不行://定义每个UICollectionViewCell 的大小-(CGSize)collecti...

今天用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,如若转载,请注明来源。

目录
相关文章
|
测试技术 Swift
Swift:UILabel超出宽度文字的截取
Swift:UILabel超出宽度文字的截取
420 0
Swift:UILabel超出宽度文字的截取
|
iOS开发
iOS开发 - UITableView的tableHeaderView注意事项(遮挡cell,内容重复等等)
iOS开发 - UITableView的tableHeaderView注意事项(遮挡cell,内容重复等等)
268 0
iOS-UITextView设置行间距,内容颜色(变相设置类似UITextField的placeholder)
iOS-UITextView设置行间距,内容颜色(变相设置类似UITextField的placeholder)
270 0
iOS-UITextView设置行间距,内容颜色(变相设置类似UITextField的placeholder)
|
Swift
Swift之设置UItextField的占位文字颜色颜色
Swift之设置UItextField的占位文字颜色颜色
217 0
Swift之设置UItextField的占位文字颜色颜色
三种方法设置UITextField的占位文字颜色
三种方法设置UITextField的占位文字颜色
208 0
SwiftUI—使用ScrollView在限定的区域显示超长的内容
SwiftUI—使用ScrollView在限定的区域显示超长的内容
343 0
SwiftUI—使用ScrollView在限定的区域显示超长的内容
tableView 去掉底部多余的cell线(记录备忘)
self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
789 0