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

Ios UICollectionView:问题当我只选择一个单元格时,选择了多个单元格,ios,uicollectionview,Ios,Uicollectionview,我面临一个问题,需要花费很多时间,但无法解决这个问题: 我创建了一个UICollectionView,内容非常简单,有一个标签指示单元格编号,当选中一个单元格时,单元格的背景变为橙色。 我用xib文件创建了一个自定义单元格进行设计(非常简单)。我从我的UICollectionView加载这个单元格到我的DemoUICVViewController.m文件中,就像很多人通过以下步骤所做的那样: -在ViewDidload中声明自定义单元类: [self.collectionView registe

我面临一个问题,需要花费很多时间,但无法解决这个问题:

我创建了一个UICollectionView,内容非常简单,有一个标签指示单元格编号,当选中一个单元格时,单元格的背景变为橙色。 我用xib文件创建了一个自定义单元格进行设计(非常简单)。我从我的UICollectionView加载这个单元格到我的DemoUICVViewController.m文件中,就像很多人通过以下步骤所做的那样: -在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,第一节申报单编号10

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

我附上了照片,例如:

我终于找到了要修复的根本原因:添加这一行以进行检查

collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath

{

。。。
}

这是因为单元重复使用。关于这个问题有很多答案,所以做一些搜索。@rdelmar:我搜索了,但仍然没有找到清楚的想法,为什么橙色会出现在其他单元格中。我发现了一个类似的问题,但还不够清楚:您似乎注册了一个类(MyCustomCell),但将退出队列的单元格转换为另一个类(myCell)。此外,您的重用标识符在注册时为MyCell,但在退出队列时为MyCell。这些打字错误是在您的问题中还是在您的实际代码中?
if(myCell.selected)
    // set background of cell to orange;
else
    // set white background;