UICollectionView将最后一个单元格设置为一个部分

时间:2015-06-04 16:33:20

标签: ios uicollectionview uicollectionviewcell

我目前正在处理轮播视图,该视图适用于具有此格式的UICollection

[cell1][cell2][cell3] ... [cell n][ + ]

所以我的UICollection只有一个部分。

除最后一个单元格外,每个单元格都有内容。最后一个单元格(n+1)内部有一个加号按钮,允许用户在轮播中插入新单元格。

我将此代码写入数据源方法cellForItemAtIndexPath,以了解当前索引路径中的单元格是否是最后一个单元格:

if ([indexPath section] == sectionsAmount - 1 && [indexPath row] == rowsAmount - 1) {
    FormationCollectionViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CellFormation" forIndexPath:indexPath];
    return cell.
}

我的旋转木马的最后一个单元格没问题,但是当我在旋转木马中水平滚动时,最后一个单元格也会在旋转木马的某个索引处生成,并在滚动期间替换我的其他单元格。我认为这对可重复使用的细胞来说是一个问题。有人可以帮我吗?

这就是我想要的:

[cell1][cell2][cell3] ... [cell n][ + ]

在初始旋转木马后,我有:

[cell1][cell2][cell3] ... [cell n][ + ]

所以没关系,但是当我滚动我的旋转木马时,我有这个错误:

[cell1][ + ][ + ] ... [cell n][ + ]

最后一个细胞被克隆到某些位置。

1 个答案:

答案 0 :(得分:0)

你应该在你的单元子类上覆盖prepareForReuse方法,并在那里进行任何配置清理,比如重置UI和单元状态。

Docs reference

更新

[+]单元格是否与[cell n]单元格使用相同的类? 如果是,那么在重用之前你没有清除状态(因此,你应该在prepareForReuse方法上清除它)。如果是,那么您可能正在为两者使用相同的单元格标识符。