UICollectionView:当我只选择一个单元格时,选择了多个单元格

时间:2014-09-22 14:34:14

标签: ios uicollectionview

我遇到了一个需要花费很多时间的问题,但无法弄清楚问题:

我创建了一个内容非常简单的UICollectionView,一个标注了cell_number,当选择一个单元格时,单元格的背景变为橙色。 我创建了一个带有xib文件的自定义单元格用于设计(非常简单)。我在我的DemoUICVViewController.m文件中从我的UICollectionView加载这个单元格通常像许多人那样做了一些步骤: - 在ViewDidload中声明自定义单元格类:

[self.collectionView registerClass:[MyCustomCell class] forCellWithReuseIdentifier:@"MyCell"];`
- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath {
MyCustomCell * myCell = (MyCustomCell*)[cv dequeueReusableCellWithReuseIdentifier:@"myCell" forIndexPath:indexPath];
myCell.lable.text = [arrayNumber objectAtIndex:indexPath.item];
return myCell; 
}

并在选中时:

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
// Get the cellForItemAtIndexPath and set the background coler of cell to orange
}`

我返回的部分1的数量,以及第I部分中的项目数量返回10

UICollectionView中的所有单元格都正确显示。但是当我点击选择一个细胞时,我不仅看到细胞是橙色的,而且其他一些细胞也会变成橙色,例如细胞5和细胞9。 我调试但是didSelectItemAtIndexPath只被调用一次并且在右边的索引处,当其他一些单元格也是橙色时非常奇怪。 我不确定问题是否是细胞标识符的可重用性,有人可以给我一些建议。

我附上照片,例如: Image describes

1 个答案:

答案 0 :(得分:1)

最后我找到了修复的根本原因:添加此行以检查

collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath

{

...

if(myCell.selected)
    // set background of cell to orange;
else
    // set white background;

... }