如何重新排序UITableView的部分?

Mor*_*eu5 7 drag-and-drop uitableview ios swift

2009年的这个问题没有得到解答,这是互联网上极少数提到这个问题的问题之一.

问题:我想以与行处理相同的方式重新排序UITableView的各个部分(即通过拖动).

我看到这种方式的方式是:你打开桌面上的编辑,重新排序指标出现.当您开始拖动一个节标题(或一个单元格作为假节目标题,这是次优[1])时,所有常规单元格都会"消失",因此您只能移动各个部分(如果你更容易有超过几个部分).

LPRTableView似乎解决了这个问题,但在重新排序部分时正确设置非常棘手.我尝试了一整天并没有取得多大成功.另外,[1].

一个不那么好但可以接受的解决方案是在标题中有像⬆️⬇️这样的按钮(这里可以使用正确的标题),但它有点尴尬.

另一个不那么好但可以接受的解决方案是有一个额外的步骤(比如一个按钮),它会调出一个新的UITableView,只显示这些部分作为单元格,并允许在那里重新排序.工作正常,但创造的问题比解决的问题多[2].

我在文档中看不到任何内容,例如,在重新排序开始/结束时调用的钩子.或者更确切地说,有结束位但我看不到开头的那个.

建议?


[1]原则上,这允许行放在节标题之前,你必须手动捕获它,看起来很糟糕.

[2]我甚至会在哪里放置这样的控件,特别是如果我已经拥挤拥挤的UI,或者我想保持我的UI最小化?

Chr*_*ler 3

我会折叠所有部分并仅将sectionHeaders显示为UITableViewCells。然后我会使用默认的拖放行为重新排列它们。完成后,将旧的未折叠信息加载回表视图单元格中。

那么你就不必考虑动画并遵守“iOS指南”。