UICollectionViewCell 选中项异常

原因

collectionView 管理选中项和自己管理选中项冲突。

collectionView 管理选中项

collectionView 会设置选中项的 cell isSelected=true 。当 cell 重新加载时,即collectionView(UICollectionView, cellForItemAt: IndexPath) -> UICollectionViewCell 返回 cell 对象之后,collectionView 重新设置 cell 的选中状态(猜测)。

自己管理选中项

手动更新选中项的 cell 的视图,比如调用 reloadData() reloadItems(at: [IndexPath]) 。在提供 cell 的回调函数中设置 cell 的选中状态。

冲突

如果同时自己手动更新选中项的 cell 的视图和在 cellisSelected 属性变动时更新视图,如上所述,在 cell 重新加载时,collectionView 会根据内部的记录设置 cellisSelected 属性,如果 collectionView 内部记录里 cell 不是选中状态,则 cell 的视图更新为未被选中状态。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容