如何在不使用indexPath的情况下添加单元格

时间:2015-11-19 18:33:42

标签: ios swift uicollectionview

我有UICollectionView,每7个单元格加载一个自定义collectionViewCell。这样做的问题是它会占用主阵列的内容。

  

(即如果mainArray.count == 17仅显示15,因为indexPaths   必须为正在加载的customCollectionViewCells指定。)

我也不想使用部分。我想知道这些是否是一种在不背离主要内容的情况下加载这些单元格的方法?

我尝试了什么

 func collectionView(_ collectionView: UICollectionView,
    numberOfItemsInSection section: Int) -> Int {
    let counter == 0;
    if (index == 7 || index == 14) {
      counter = customCellsArray.count
     } 
    else{
      counter = mainArray.count
     }
    return counter;
 }

1 个答案:

答案 0 :(得分:0)

在数据源中,返回实际需要的单元格数,包括自定义单元格。 E.g:

func collectionView(_ collectionView: UICollectionView,
    numberOfItemsInSection section: Int) -> Int {

    return customCellsArray.count + mainArray.count;
}

然后当你提供你的细胞时:

func collectionView(_ collectionView: UICollectionView,
    cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    if (indexPath.item % 7 == 0 && indexPath.item > 0) {
        // Return cell from customCellsArray.
    } else {
        // Return cell from mainCellsArray.
    }
}

您必须将indexPath.item映射到两个数组中所需的正确索引。