我目前正在处理轮播视图,该视图适用于具有此格式的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][ + ]
最后一个细胞被克隆到某些位置。
答案 0 :(得分:0)
你应该在你的单元子类上覆盖prepareForReuse
方法,并在那里进行任何配置清理,比如重置UI和单元状态。
更新
[+]单元格是否与[cell n]单元格使用相同的类?
如果是,那么在重用之前你没有清除状态(因此,你应该在prepareForReuse
方法上清除它)。如果是,那么您可能正在为两者使用相同的单元格标识符。