我有一个带有一些部分和行的UITableView.
当我调用一个函数时,我想将一行从一个部分移动到另一个部分(所以不是我的手指,我不想使用UITableView的编辑模式).
我怎样才能做到这一点?
如果我重新创建数据源并重新加载表,那没关系,但它不使用动画.
最佳答案 UITableView为您提供了以下方法:
调用beginUpdates,更新数据源,调用moveRowAtIndexPath,最后在UITableView上调用endUpdates
[tableView beginUpdates];
// update your datasource
// ...
// fill in your indexpath of old and new position
[tableView moveRowAtIndexPath: ... toIndexPath: ...];
[tableView endUpdates];
编辑:moveRowAtIndexPath仅适用于iOS 5
所以你宁愿使用这个:
[tableView insertRowsAtIndexPaths: ... withRowAnimation:...];
[tableView deleteRowsAtIndexPaths: ... withRowAnimation:...];