1

我在这里束手无策,但我的收藏视图有一个奇怪的问题,并试图选择多个项目。我有一个编辑按钮,当我点击它时,它会触发一个 isEditing 功能。当一个单元格被点击时,它会改变 isSelected 上的布尔值。我想要做的是选择多个单元格,然后点击垃圾桶按钮删除所选项目。我遇到了两个问题:

  1. 如果我选择多个对象然后点击我的删除按钮 - 然后它会删除一些但不是全部的对象。
  2. 如果我点击我的编辑按钮并选择几个对象,然后点击取消,然后返回编辑模式,则再次选择一些对象。

我的编辑代码在这里:

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

4

0 回答 0