我尝试通过Apple的documentation实现此方法。
- (void)moveRowAtIndexPath:(NSIndexPath *)indexPath toIndexPath:(NSIndexPath *)newIndexPath
但是在我实现此方法之前,我的代码无法运行:
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
我完全不知道为什么它不起作用以及为什么它现在有效。
答案 0 :(得分:2)
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
这是将表视图中特定位置的行移动到另一个位置的数据源方法。当用户按下重新排序控件时,将调用此方法,并且必须重新排列数据,以便根据fromIndexpath和toIndexPath中的重新排序数据重新绘制表视图。
答案 1 :(得分:1)
- (void)moveRowAtIndexPath:(NSIndexPath *)indexPath
toIndexPath:(NSIndexPath *)newIndexPath
适用于UITableView
子类
- (void)tableView:(UITableView *)tableView
moveRowAtIndexPath:(NSIndexPath *)fromIndexPath
toIndexPath:(NSIndexPath *)toIndexPath
是否适用于数据源。显然,您没有使用子类,而是实现委托/数据源方法。这虽然有道理。如果您是子类,则只能有一个可能的表视图。如果您是一个数据源,您可以拥有任意数量的数据源(您可以成为100个表视图的数据源)。这样你就需要知道你正在处理哪个表视图,因此需要额外的参数。