ios - 在编辑模式下使用自定义滑动操作时如何防止单元格缩进?

标签 ios tableview

我正在尝试实现两个单元格,一个可以通过滑动删除,一个可以通过 删除。不能被删除,但以另一种方式滑动操作。

这就是它现在的样子:

swiping

单击编辑时,我不希望中间单元格缩进。
如果没有任何自定义代码,所有单元格都会显示这个红色圆圈并获得一个删除按钮,但我添加了几行代码来防止这种情况。

此代码会将没有前导或尾随滑动操作的所有单元格设置为不可编辑,这解释了 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/

相关文章:

ios - iOS 应用程序的 bundle 种子 ID 是什么?

ios - 时间戳一直在计数

swift - tableview 没有用导航栏填满 Storyboard 中的整个屏幕

ios - Cocos2D + Box2D 编辑器?

ios - 保存登录 session 凭据并在整个应用程序中加载

ios - 如何仅在选定的单元格中启用按钮?

ios - 如何在ios中TableviewCell中的uiTextField中实现日期

ios - TableViews 不适用于 TabBarController Swift

ios - UIButtons 作为 TableView 中的复选框

ios - 学习核心音频的第 4 章由于 AudioQueueNewInput 因 fmt 失败而无法正常工作?