在 UITableView 中的部分之间重新排列

Posted

技术标签:

【中文标题】在 UITableView 中的部分之间重新排列【英文标题】:Rearranging between sections in UITableView 【发布时间】:2010-06-25 03:41:00 【问题描述】:

我有一个包含 2 个部分的 UITableView。我在表格视图中启用了重新排列,但我遇到了一个奇怪的问题。

我不希望用户能够在部分之间重新排列行(我只希望用户能够在他们的部分中重新排列行)。如果我尝试将一行从第一部分拖到第二部分,它不会允许我,这就是我想要的。如果我将一行从第二部分拖到第一部分,它让我,这是我不想要的。

这是 Apple 框架中的一个错误,还是它的实际行为方式,以及如何获得我想要的行为?

编辑:我在这里遇到了一些不一致的地方。早些时候我无法将一行从第一部分拖到第二部分,但现在我可以了。如何禁用部分之间的重新排列?

【问题讨论】:

【参考方案1】:

我不知道具体的错误,但您是否已明确覆盖 tableView:targetIndexPathForMoveFromRowAtIndexPath:toProposedIndexPath: 以检查该行正在尝试移动到的部分?也许你不是,默认行为只是碰巧以一种方式起作用,而不是另一种?

【讨论】:

这个应该方法应该有效。只需检查proposedDestinationIndexPath.section 是否与sourceIndexPath.section 相同,并根据它返回旧的或新的索引路径。

以上是关于在 UITableView 中的部分之间重新排列的主要内容,如果未能解决你的问题,请参考以下文章

通过拖动委托向上或向下拖动一行来重新排列表格中的部分(iOS 11)

为了重新排列 UITableView 行,我必须实施哪些方法?

仅在指定部分启用 UITableView 编辑

在 UITableView 中的部分之间隐藏部分/空间

UITableView 以排序顺序划分,未正确划分

在 UITableView 中的部分索引标题之间添加填充(或增加高度)