基于UITableView Edit重新排序NSArray

时间:2015-12-09 19:50:37

标签: ios objective-c uitableview nsarray

我有一个应用程序,里面有超过500首教堂的歌曲。我正在添加一个新功能,这将允许他们创建手动选择的歌曲的“幻灯片放映”。布局现在的方式是他们拥有所有歌曲的day,并且点击一首歌曲会将PPT的文件位置添加到UITableView,并为该行添加一个复选标记。接下来,他们可以点击预览按钮,这将按照他们选择的顺序为他们提供他们所选歌曲的表格视图。

我想允许编辑模式删除歌曲或重新排序,但我不知道如何重新排序NSArray,因此第0项将是他们在tableview上的第一首歌,不仅仅是他们拍摄的第一个。

1 个答案:

答案 0 :(得分:1)

我假设您有一组名为songsArray的歌曲,用于填充表格视图。然后,当重新排序时,添加此方法。

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath {
    NSObject *songToMove = [self.songsArray objectAtIndex:sourceIndexPath.row];
    [self.songsArray removeObjectAtIndex:sourceIndexPath.row];
    [self.songsArray insertObject:stringToMove atIndex:destinationIndexPath.row];
}

别忘了实施canMoveForRowAtIndexPath

- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
   return YES;
}

这允许用户重新排序表视图中的所有行,如果您不想让用户重新排序特定行,请添加indexPath.row的检查并返回该行的NO