在UICollectionView

时间:2017-04-04 11:02:30

标签: ios swift uicollectionview uicollectionviewcell uicollectionviewlayout

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

我知道它与此功能有关,但我对如何实现结果感到困惑

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

}

请查看屏幕截图。

enter image description here

1 个答案:

答案 0 :(得分: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)
     }
}

注意:此处 minSpace 是两个单元格之间所需的最小空间。