ios – UICollectionView单元格在重新加载数据后保持高亮

我有一个UICollectionView,单元格内的标签自动定期更改.当这个更新触发时,我在UICollectionView上调用reloadData,并且我设置了单元格以更改[UICollectionViewCell setHighlighted:]上的背景颜色.

问题是如果用户在单元格上按住更新,则当用户释放单元格保持突出显示时,也不能再选择.

我注意到dequeueReusableCellWithReuseIdentifier:forIndexPath:在reloadData之后的单元格上调用setHighlighted.

我也尝试过reloadSections:而不是reloadData,这修复了单元格“卡住”的问题,但是当它被调用时会导致一个淡出和进入单元格.

调用放在performBatchUpdates中:似乎也没有解决问题.

解决方法

在单元格的类中,尝试调用
- (void)prepareForReuse {
    [super prepareForReuse];
    [self setHighlighted:NO];
    ... Any other custom stuff that should be cleaned up ...
}

问题是你可能会做背景颜色不同,然后单元格通常会在突出显示自动执行.通常,单元格的超类将在prepareForReuse中撤消这些更改,但不知道您的更改.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...