单击单元格时如何根据排序移动单元格?

How do I move cells according to a sort when a cell is clicked?

我正在寻找一种方法来根据排序将单元格轻按到其位置。

我用 Google 搜索过,但没有找到太多,而且我个人以前从未做过这样的事情。

这是我的类型

 let sort = NSSortDescriptor(key: #keyPath(Item.name), ascending: true)

这是我的didSelectRow

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let item = fetchedRC.object(at:indexPath)

    item.isComplete.toggle()

    do {
        try context.save()
        //tableView.deselectRow(at: [indexPath.row], animated: true)
        //tableView.reloadRows(at: [indexPath], with: .automatic)
    } catch let error as NSError {
        print("Could not save. \(error.localizedDescription)")
    }
}

我希望将选定的单元格划掉(我已经处理过)并移动到 tableView 的底部,这就是我正在做的事情。该排序仅在加载时有效,如预期的那样,但我想在 table.

初始出现后将被选中的单元格移动到其各自的位置

编辑: 我决定测试排序,它被设置为我的名字而不是我的 isComplete 字段,所以它现在相应地移动它们但现在它不会像它应该做的那样划掉文本。

我终于找到了这个解决方案,它似乎按预期工作。我需要做的就是用这个替换我激动人心的 .move

case .move:
        if indexPath != nil {
            self.tableView.deleteRows(at: [currentIndexPath!], with: .automatic)
        }
        if let newIndexPath = newIndexPath {
            self.tableView.insertRows(at: [newIndexPath], with: .automatic)
        }