我目前正在开发一个显示各种单元格的UICollectionView ......
到目前为止一直很好,但我对单元格的选择有问题...例如,我实现了这样的选择方法:
- (Void)collectionView:(UICollectionView *) collectionView didSelectItemAtIndexPath:(NSIndexPath *) indexPath {
UICollectionViewCell theCell * = (UICollectionViewCell *) [CollectionView cellForItemAtIndexPath: indexPath];
theCell.backgroundColor = [UIColor orangeColor];
}
问题是,除了制作橙色外,当我浏览集合视图时,所选单元格还会创建其他选择..
示例:选择单元格编号7并自动选择单元格编号14 ...显然我不需要这个但我希望它只保留选中的单元格编号7
我在哪里做错了?我的indexPath有问题吗?
答案 0 :(得分:0)
(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
像这样添加......:
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"yourCelId" forIndexPath:indexPath];
if (cell.selected) {
cell.backgroundColor = [UIColor orangeColor];
} else {
cell.backgroundColor = [UIColor clearColor];
}
这是因为细胞被重复使用,你必须重置所有可以改变的值。