ios - 如何重新排序 UITableView 的各个部分?
问题描述
这个 2009年的问题没有得到回答,它是互联网上极少数提到这个问题的问题之一。
问题:我想以与对行相同的方式(即,通过拖动)对 UITableView 的各个部分进行重新排序。
我看到这个工作的方式是:您打开表格上的编辑,重新排序指示器出现。当您开始拖动节标题(或充当虚假节标题的单元格,这是次优 [1])时,所有常规单元格“消失”,因此您只能移动节(如果您更容易有多个部分)。
LPRTableView似乎解决了这个问题,但是在重新排序部分时正确设置是相当棘手的。我尝试了一整天,但没有很成功。另外,[1]。
一个不太好但可以接受的解决方案是在标题中添加⬆️⬇️之类的按钮(此处可以使用正确的标题),但这有点尴尬。
另一个不太好但可以接受的解决方案是有一个额外的步骤(比如一个按钮),它会打开一个新的 UITableView,只将部分显示为单元格,并允许在那里重新排序。工作正常,但产生的问题多于解决的问题 [2]。
我在文档中看不到任何东西,例如,在重新排序开始/结束时调用的钩子。或者更确切地说,有结尾部分,但我看不到开头部分。
建议?
[1] 原则上,这允许将行放置在节标题之前,并且您必须手动捕捉它,视觉效果不好。
[2] 我什至会在哪里放置这样的控件,特别是如果我已经有一个拥挤的 UI,或者我想保持我的 UI 最小化?
解决方案
我会折叠所有部分并仅将 sectionHeaders 显示为 UITableViewCells。然后我会用默认的拖放行为重新排列它们。完成后,将旧的未折叠信息加载回表格视图单元格。
那么你就不必考虑动画并坚持“iOS指南”。
推荐阅读
- python - 如何使用 Python 匹配音频剪辑中的音频剪辑?
- reactjs - 从 Firebase 获取数据时尝试在 React-Redux 中对 props 进行映射时出错
- amazon-web-services - 从 AWS Lambda 控制台隐藏环境变量
- sqlite - SQLite CREATE TRIGGER ... SQLite 错误 1 与语句:不完整的输入
- regex - 正则表达式中作为替换变量的模式出现次数
- javascript - 如何禁用 aws amplify vue 身份验证器的注册链接?
- kubernetes - kubernetes - 如何找到正在运行和准备好的 pod?
- r - 如何通过R中的列名在数据框中的变量之间交换值
- go - 查找 PayPal API 的可用范围列表
- python - RuntimeError:跟踪函数时不支持 as_numpy_iterator()