我正在制作一个水平滚动的集合视图。集合视图位于uitableview单元格中
我的收集视图高度为170
我正在制作一个75x75的细胞
-(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section;
return UIEdgeInsetsMake(4, 5, 6, 3);
}
这是我设置的内容。从顶部填充是4左边是5右边是3而底部是6.集合视图有20个项目水平滚动。现在我的问题是当制作两行时项目的垂直间距。我想把它保持在最低限度。我用过这个
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section
{
return 2.5;
}
它提供了各种项目之间的2.5填充,但我的垂直填充仍然太多,你可以从图像中看到2行图像之间的垂直空间大约为10.我只想将其减少到2.5。我在返回UIEdgeInset时做了一些更改但是如果我从底部增加填充,那么集合视图只会产生我不想要的单行。例如,如果我使用这个
-(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section{
return UIEdgeInsetsMake(4, 5, 7, 3);
}
我得到这个输出
如何克服这个问题。我只想要所有项目之间的间距和最小间距。这是一个正方形(75x75)。任何帮助将不胜感激。感谢
答案 0 :(得分:0)
使用以下代码设置集合视图单元格的高度。
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout,sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize{
var collectionViewHeight = collectionView.fram.size.height
let cellheight = collectionViewHeight/2 - 5
return CGSize(width: cell height , height: cellheight)
}
现在它将做的是它将计算集合视图的高度,如果你修复了2个行,则将其除以2,并从每个行中减去5 由于collectionViewheight为170,除以2为85,然后 - 5为每个单元格高度为80,宽度等于方格单元格
这将完全符合视图 否则,如果您可以根据您的要求更改值
答案 1 :(得分:0)
最小行间距就是 - 它设置了最小间距,但没有做任何事情来设置最大值。如果需要基于集合视图的大小,集合视图将在行之间添加额外的空间。你的数学没有加起来。 2 X 75(单元格高度)+ 4(顶部)+6(底部)+ 2.5(行间距)= 162.5,但您的集合视图的高度为170.将集合视图的高度更改为162.5,它应该工作。