UICollectionView 中具有序列的小单元格大小和大单元格大小

Small And Big Cell Size with Sequence in UICollectionView

我想在我的 UICollectionView 中有 3 个小单元格,然后是 2 个大单元格,然后是 3 个小单元格,

我知道和这个函数有关系,但是我很困惑如何实现结果

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

}

请看截图

您可以像这样计算 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)
     }
}

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