我现在正在开发一个 UI 组件,因为它的行为类似于 UITableView,所以我在 UITableView 之后对委托和数据源协议进行了大量建模。但是,我注意到一种我不太了解的方法——“canMoveRowAtIndexPath”。
这实质上允许代理指定它是否希望给定的单元格是“可移动的”。但是,将另一个可移动单元格放入比不可移动单元格更高的索引(即在表格中的“上方”)不会导致它间接移动吗?(因为被移动的单元格下方的每个单元格都会被向下推一排)。
所以基本上,我的问题是这种方法的意义何在?任何人都可以提供一个示例用例吗?因为我正在争论我是否应该费心将它包含在我的组件中。
如果有的话,我认为更有用的委托方法可能是诸如“canMoveRowInSection”之类的东西,它允许您指定是否可以移动给定部分中的任何行。这将允许您禁用特定部分的重新排序,并且将其他行移到该部分之外不会影响其中行的顺序。
我知道 Apple 工程师提供这种方法是有原因的,我只是看不出这个原因可能是什么。
感谢您的任何见解!