Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UICollectionView中具有序列的大小单元格_Ios_Swift_Uicollectionview_Uicollectionviewcell_Uicollectionviewlayout - Fatal编程技术网

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

Ios UICollectionView中具有序列的大小单元格,ios,swift,uicollectionview,uicollectionviewcell,uicollectionviewlayout,Ios,Swift,Uicollectionview,Uicollectionviewcell,Uicollectionviewlayout,在我的UICollectionView中,我希望有3个小单元格,然后是2个大单元格,然后是3个小单元格,重复地 我知道这与此功能有关,但我对如何实现结果感到困惑 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { } 请看一下屏

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

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

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

}
请看一下屏幕截图


您可以这样计算
indexath.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是两个单元格之间所需的最小空间。

您可以这样计算
indexath.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是两个单元格之间所需的最小空间。

可能重复的可能重复的可能重复的。您也可以回答这个问题吗?让我检查一下,如果我有解决方案,我会把它贴出来。请你也回答这个问题好吗?让我检查一下,如果我有解决方案,我会发布它