我有一个应用程序,其中包含超过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

关于ios - 根据UITableView重新排序NSArray,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34187750/

10-13 04:12