在UICollectionView中使用序列的小和大单元大小

Jay*_*iyk 0 ios uicollectionview uicollectionviewcell uicollectionviewlayout swift

我希望在我的UICollectionView中重复使用3个小单元,然后是2个大单元,再重复3个小单元,

我知道它与这个功能有关,但我很困惑如何实现结果

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {

}
Run Code Online (Sandbox Code Playgroud)

请看一下截图.

在此输入图像描述

Nir*_*v D 5

你可以indexPath.row像这样计算模数.

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
     if (indexPath.row % 5 == 3 || indexPath.row % 5 == 4) {
         //return big cell size
         let size = (collectionView.frame.size.width - minSpace) / 2
         return CGSize(width: size, height: size)
     }
     else {
         //return small cell size
         let size = (collectionView.frame.size.width - minSpace) / 3
         return CGSize(width: size, height: size)
     }
}
Run Code Online (Sandbox Code Playgroud)

注意:这里minSpace是两个单元格之间所需的最小空间.