今天用CollectionView實作的清單效果不理想,一直不知道問題出現在那裡
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuEmNwMGNlRDZ0czYzEmMxM2YlhTY1EWMxIzM3QmN0Q2MfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.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,合理嗎?求指點)
沒有間距的效果
- 如果有什麼疑問,可以在評論區一起讨論;
- 如果有什麼不正确的地方,歡迎指導!
> 注:本文首發于
iHTCboy's blog,如若轉載,請注明來源。