2015-12-09 100 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