iOS重新排序UITableView

use*_*169 1 uitableview nsarray ios

我有一个UITableView从sql db读取数据.

当我重新排序数据时,它只会改变顶部和底部数据

在此输入图像描述

从上到下拖动1

在此输入图像描述

当我让它在5时它只切换顶部和底部.

在此输入图像描述 我使用以下内容

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {

            [myStringsArray exchangeObjectAtIndex:fromIndexPath.row withObjectAtIndex:toIndexPath.row];

}
Run Code Online (Sandbox Code Playgroud)

我如何重新排序列表?所以它将是2,3,4,5,1而不是5,2,3,4,1

Nir*_*iya 5

交换不是一种正确的方法,你应该使用它.

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
 {
     id buffer = [myStringsArray objectAtIndex:fromIndexPath.row];
     [myStringsArray removeObjectAtIndex:fromIndexPath.row];  
     [myStringsArray insertObject:buffer atIndex:toIndexPath.row];
}
Run Code Online (Sandbox Code Playgroud)

编辑以匹配下面的评论.