This question from 2009没有回答,这是互联网上极少数提到这个问题的方法之一。
问题:我想以与行处理相同的方式重新排序UITableView的各个部分(即通过拖动)。
我看待这种方式的方式是:你打开桌面上的编辑,重新排序指标出现。当您开始拖动一个节标题(或一个单元格作为假节目标题,这是次优[1])时,所有常规单元格都会消失",所以你只能移动各个部分(和如果您有多个部分,则会更容易。)
LPRTableView似乎解决了这个问题,但在重新排序部分时正确设置非常棘手。我尝试了一整天并没有取得多大成功。另外,[1]。
一个不那么好但可以接受的解决方案是在标题中包含类似⬆️⬇️的按钮(这里可以使用正确的标题),但它有点尴尬。
另一个不那么好但可以接受的解决方案是有一个额外的步骤(比如一个按钮),它会调出一个新的UITableView,只显示这些部分作为单元格,并允许在那里重新排序。工作正常,但产生的问题比解决的问题多[2]。
我无法在the docs中看到任何内容,例如,在重新排序开始/结束时调用的钩子。或者更确切地说,有ending位但我无法看到它的开头。
建议?
[1]原则上,这允许将行放在节标题之前,你必须手动捕获它,看起来看起来很糟糕。
[2]我甚至会在哪里放置这样的控件,特别是如果我已经拥挤的UI,或者我想保持我的UI最小化?
答案 0 :(得分:2)
我会去掉所有部分并仅将sectionHeaders显示为UITableViewCells。然后我会使用默认的拖放行为重新排列它们。完成后,将旧的未折叠信息加载回表格视图单元格。
然后您不必考虑动画并坚持使用“iOS指南”。
答案 1 :(得分:0)
借助假部分,您可以点按并拖动该部分视图。有两个步骤:
将其放到某个必须更换的部分。因此对于 取而代之的是我脑子里还有两个想法。
首先播放观点 层次结构最重要的是什么,而不是通过标记或标记的帮助 其他东西让你的部分取代假部分。
第二个可能是找到可见细胞而不是通过计算 屏幕位置可能是这里的部分。
如果能够实现这一目标,那么您有两个部分,您可以在数据源中替换它们,而不是再次加载数据。