我正在显示一个集合视图,以便用户可以选择类别,随后我将填充TableView。
问题是,当收集单元格不在视野中时,didDeselectItemAt函数没有响应。
这是我的代码:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
collectionView.cellForItem(at: indexPath)?.backgroundColor = UIColor.groupTableViewBackground
let category = catgories[indexPath.row]
setCategory(category: category)
}
func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath) {
collectionView.cellForItem(at: indexPath)?.backgroundColor = UIColor.clear
}
答案 0 :(得分:0)
这是因为collectionView内的单元格已被重用,您需要创建数组模型并跟踪每种单元格颜色,并将其分配到Datagrid
内,此
cellForRowAt
当indexPath完全超出屏幕时,请collectionView.cellForItem(at: indexPath)?.backgroundColor = UIColor.clear
并进行验证
nil
该应用将崩溃