我正在尝试在选择行后在各个部分之间移动项目。 这是我用于将项目从第0部分移动到第1部分的代码:
tableSource[indexPath.section].tableItems.remove(at: indexPath.row)
tableSource[1].tableItems.insert(data, at: 0)
tableView.moveRow(at: indexPath, to: IndexPath(row: 0, section: 1))
DispatchQueue.main.asyncAfter(deadline: .now() + 0.2, execute: {
self.tableView.reloadRows(at: [IndexPath(row: 0, section: 1)], with: UITableViewRowAnimation.automatic)
})
DispatchQueue用于在动画后更新行。
如果所有项目都适合屏幕或者第1部分可见,则效果很好。否则,我会像删除行并将其添加到另一个索引时那样得到行为。
答案 0 :(得分:1)
这是因为如果单元格不可见,UITableView不知道动画的位置