我在这里束手无策,但我的收藏视图有一个奇怪的问题,并试图选择多个项目。我有一个编辑按钮,当我点击它时,它会触发一个 isEditing 功能。当一个单元格被点击时,它会改变 isSelected 上的布尔值。我想要做的是选择多个单元格,然后点击垃圾桶按钮删除所选项目。我遇到了两个问题:
- 如果我选择多个对象然后点击我的删除按钮 - 然后它会删除一些但不是全部的对象。
- 如果我点击我的编辑按钮并选择几个对象,然后点击取消,然后返回编辑模式,则再次选择一些对象。
我的编辑代码在这里:
override func setEditing(_ editing: Bool, animated: Bool) {
super.setEditing(editing, animated: animated)
collectionView.allowsMultipleSelection = editing
let indexPaths = collectionView.indexPathsForVisibleItems
for indexPath in indexPaths {
let cell = collectionView.cellForItem(at: indexPath) as! CollectionViewCell
cell.isInEditingMode = editing
}
}
我的删除按钮代码在这里:
if let selectedCells = collectionView.indexPathsForSelectedItems {
for indexPath in selectedCells {
if let items = dataSource.itemIdentifier(for: indexPath) {
var snapshot = dataSource.snapshot()
container.viewContext.delete(items)
saveChangesToDisk()
snapshot.deleteItems([items])
dataSource.apply(snapshot, animatingDifferences: true)
}
}
isEditing = false
}
我的完整项目在这里(专门链接到我的 collectionview.swift:https ://github.com/analogpotato/superdiff/blob/master/superdiff/CollectionViewController.swift