UIcollectionview在某一行之后显示不同的单元格

时间:2018-04-17 14:38:01

标签: ios swift uicollectionview

我需要创建一个UIcollectionview,其中包含每行3个单元格的单元格。在一定数量的单元格之后,假设为60,我需要显示具有图像视图单元格61(不同数据集)的大单元格。但是通过创建第61个图像单元格,我在61st上的普通数据将合并到这个图像单元格中,有没有办法计算它而不会影响我的数据阵列。感谢。

1 个答案:

答案 0 :(得分:0)

以下是数据源部分:

var items = [Item]()

func numberOfSections(in collectionView: UICollectionView) -> Int {
    let numberOfSections = 60/(items.count+1) + 1
    return numberOfSections
}

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
           let numberOfSections = 60/(items.count+1) + 1

   if section != numberOfSections - 1 {
       return 60
   }
   let numberOfItems = items.count%60
   return numberOfItems
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {   
        let itemIndex = indexPath.section * 60 + indexPath.row
        let item = items[itemIndex]
        // set cell from item … 
}

然后,您需要使用UICollectionViewDelegate提供标题单元格:

func collectionView(_ collectionView: UICollectionView, willDisplaySupplementaryView view: UICollectionReusableView, forElementKind elementKind: String, at indexPath: IndexPath)

搜索SO以查找“willDisplaySupplementaryView”将向您展示如何实现此功能。祝你好运!