我正在尝试实现两个单元格,一个可以通过滑动删除,一个可以通过 删除。不能被删除,但以另一种方式滑动操作。
这就是它现在的样子:
单击编辑时,我不希望中间单元格缩进。
如果没有任何自定义代码,所有单元格都会显示这个红色圆圈并获得一个删除按钮,但我添加了几行代码来防止这种情况。
此代码会将没有前导或尾随滑动操作的所有单元格设置为不可编辑,这解释了 gif 中的底部单元格。我必须在其中包含主要的滑动操作,因为如果单元格不是 editable
,然后我根本无法滑动。
func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
let vm = sections[indexPath.section].viewModels[indexPath.row]
return vm.leadingSwipeActions != nil || vm.trailingSwipeActions != nil
}
以下代码将阻止中间单元格显示红色圆圈。
func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle {
return sections[indexPath.section].viewModels[indexPath.row].trailingSwipeActions == nil ? .none : .delete
}
如果我不通过
.none
对于具有领先 Action 的单元格,它将显示红色圆圈和 它甚至会显示默认的删除滑动。我不想删除这一行!如何防止中间单元格缩进,同时仍保留滑动它的能力?
最佳答案
这个方法似乎有效! tableView(_ tableView: UITableView, shouldIndentWhileEditingRowAt indexPath: IndexPath) -> Bool
https://developer.apple.com/documentation/uikit/uitableviewdelegate/1614873-tableview?language=objc
关于ios - 在编辑模式下使用自定义滑动操作时如何防止单元格缩进?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56873492/