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);
}
结果是