2015-12-09 72 views
0

我有一个应用程序充满超过500个教会的歌曲。我添加了一项新功能,可以让他们创建手动选择歌曲的“幻灯片放映”。现在布局的方式是他们有所有歌曲的UITableView,点击歌曲会将PPT的文件位置添加到NSArray,并为该行添加复选标记。接下来,他们可以点击预览按钮,这会按照他们选择的顺序为他们提供他们选择的歌曲的桌面视图。基于UITableView重新排序NSArray编辑

我想允许编辑模式删除歌曲或重新排序它们,但不知道该如何对NSArray进行重新排序,以使项目0成为他们在tableview上的第一首歌曲,而不仅仅是第一个他们挖掘。

回答

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

+0

谢谢,这在Obj-C中看起来如何,因为我还没有完全转换成Swift。 – user717452

+1

查看更新的答案 – njuri

+0

谢谢,会给这个去看看它的票价。 – user717452