【发布时间】:2018-01-18 20:53:01
【问题描述】:
这是我迄今为止在我的UICollectionView 中所取得的成就
这是我的UICollectionViewDelegate 函数
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
if indexPath.item % 2 == 0{
return CGSize(width: collectionView.bounds.size.width, height: 97 * 1.5)
}else{
return CGSize(width: collectionView.bounds.size.width/2.0, height: 97)
}
}
我正在寻找的是这种模式......
或者至少if indexPath.item % 2 == 0 然后创建一个单元格布局else 2 个单元格布局。
我的滚动方向只有垂直
另外,这是我删除 UICollectionViewDelegateFlowLayout 函数时得到的视图。
每行 2 个单元格。这是我需要的,但每行的宽度不同,如目标布局。
这是我的故事板原型单元
【问题讨论】:
-
"或者至少如果 indexPath.item % 2 == 0 则创建一个单元格布局,否则创建 2 个单元格布局。"不。 “目标”屏幕截图没有显示这一点。更像是:
let w; let rest = indexPath.item%5 swith rest {case 0: w = allwidth; case 1: w = allWidth*1/4; case 2: w = allWidth*3/4, case (3,4): w = allWidth*1/2} -
@Larme 是的,我理解,但问题不在于我的单元格大小,而不仅仅是它们总是每行中一个具有不同宽度的单元格。就像我添加的屏幕截图一样。如您所见,目标是一个单元格,然后是一行中的两个单元格,然后是一行中的 2 个单元格,然后是 1 个单元格,等等。
-
应该如何适合您的样本?它不会。因为如果第一个是整个宽度,那么第二个是一半,那么第三个是整个。但是第二和第三,或第一和第二不适合“单行”。也许 %3 = 0:整个宽度,否则宽度/2。你是这个意思吗?
-
@Larme 当我删除我在 collectionViewLayout 中添加的代码时的想法,当我添加此代码或您的算法时,我会得到两个相同大小的普通单元格,是的,我得到不同大小的单元格,但只有 1 个单元格连续。
-
你能给出你想要的布局的真正模式吗?一幅画,一幅 ASCI 艺术。因为您的代码、您的短语和您提供的图像之间并不清楚。
标签: swift uicollectionview uicollectionviewcell uicollectionviewlayout