Ios UICollectionView-swift 3中每个项目的不同行距

Ios UICollectionView-swift 3中每个项目的不同行距,ios,xcode,swift3,Ios,Xcode,Swift3,我有一个用swift3编程编写的collection视图。它有1个部分和6个垂直项目。我假设每个项目的默认最小行距为10,但我想为每个项目设置不同的行距。例如,项目0和1之间的间距变为50,但项目1和2之间的间距变为0。我该怎么做?我找了很多,但找不到解决办法。谢谢。 一个想法可以是把行间距视为“其他类型的细胞”,比如空白细胞,你知道吗?在方法heightforrowatinexpath中,当indexPath对应于那些空白单元格时,返回它们的自定义高度,否则返回“真实”单元格的行高 (这意味着

我有一个用
swift3
编程编写的
collection视图。它有1个部分和6个垂直项目。我假设每个项目的默认最小行距为10,但我想为每个项目设置不同的行距。例如,项目0和1之间的间距变为50,但项目1和2之间的间距变为0。我该怎么做?我找了很多,但找不到解决办法。谢谢。

一个想法可以是把行间距视为“其他类型的细胞”,比如空白细胞,你知道吗?在方法
heightforrowatinexpath
中,当indexPath对应于那些空白单元格时,返回它们的自定义高度,否则返回“真实”单元格的行高


(这意味着返回cellForRow中的空白单元格,并将它们的数字添加到当前numberOfRowInSection计数中)

设置集合视图的某些属性直接是不可能的,但我认为您可以做一个技巧

最小行距
最小项目间距
设置为
0
类似

 layout.minimumInteritemSpacing = 0
 layout.minimumLineSpacing = 0
因此,您的
集合视图单元格的任何一侧都不会有任何空间

现在保持你的细胞的背景色为清晰的颜色

并在单元格中添加
UIView
(您的内容),其大小(小于单元格大小)显示两个单元格之间的间距。因此,您可以在每个单元格中添加不同大小的视图,它将在每个单元格之间显示不同的空间

如果不想调整单元格内部视图的大小,则可以从委托方法
sizeForestimationIndepath
为不同的项目返回不同大小的单元格

比如说,

例如,我正在编写目标c代码

您的
sizeforitem

 - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {

if (indexPath.item == 1 || indexPath.item == 6 || indexPath.item == 7 || indexPath.item == 9 || indexPath.item == 15) {

    return CGSizeMake(screenWidth/3 -20, screenWidth/2);
}

return CGSizeMake(screenWidth/3, screenWidth/3);
}
结果是