我正在寻找一种根据种类将其移动到其位置的方法。
我已经搜索过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的底部,这是我正在做的事情。排序仅在加载时才起作用,如预期的那样,但是我想将被选中的单元格移动到表的初始外观之后。
编辑:
我决定测试排序方式,并将其设置为我的名字,而不是我的isComplete
字段,因此它现在会相应地移动它们,但现在它不会像预期的那样划掉文本。
答案 0 :(得分:0)
我终于找到了这种解决方案,它似乎可以按预期工作。我所需要做的就是替换我激动人心的.move
。
case .move:
if indexPath != nil {
self.tableView.deleteRows(at: [currentIndexPath!], with: .automatic)
}
if let newIndexPath = newIndexPath {
self.tableView.insertRows(at: [newIndexPath], with: .automatic)
}