使用提供的 reorderControls,用户可以点击并按住以拖动单元格以重新排序。我如何知道他们选择拖动哪个单元格以及该当前单元格的位置(即当其他单元格动画为浮动单元格腾出空间时,我想要移动单元格的索引)?
我要做的是滚动视图,以便如果用户希望使用屏幕外单元格重新排序当前单元格,则屏幕外单元格将在屏幕上滚动。我不能使用内置行为,因为我的设置是:
UIScrollView(父)
- UITableView(子)
并且 UITableView 框架是其 contentSize 的完整大小(它不滚动)。我需要相对于用户拖动单元格的位置滚动外部 UIScrollView 以在 UITableView 中重新排序。
我尝试查看委托和数据源函数,但到目前为止没有运气。还尝试了谷歌搜索和Apple文档......
编辑:似乎我无法阅读文档。tableView:targetIndexPathForMoveFromRowAtIndexPath:toProposedIndexPath:
在委托协议中给了我我需要的东西。
解决方案:从 tableview 创建一个委托到滚动视图的控制器(我的 tableview 是它自己的委托)。在提议的索引路径函数中,我向代理发送了需要变得可见的providedDestinationIndexPath 附近的单元格。如果 indexpath 为 0 或最大值,这可能是该单元格本身。然后在委托中,我使用 [view convertPoint:FromView:] 函数计算该单元格的位置,并设置滚动视图的内容偏移量以使该单元格可见!谢谢