基于UITableView编辑重新排序NSArray



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

我想允许编辑模式删除歌曲或对其重新排序,但不确定如何对NSArray进行重新排序,这样项目0将是他们在表视图中的第一首歌曲,而不仅仅是他们点击的第一首。

我假设您有一个名为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

最新更新