2014-05-14 43 views
0

以下代碼在表視圖中實現拖放功能。正如你所看到的,它通過在某個索引處從數組(dataList)中移除對象來完成重新排序,然後將其定位在所需的索引處。此代碼不使用核心數據。我的問題是,如何使用核心數據來實現這一目標。例如,您是否會像下面的代碼一樣繼續使用數組,然後將該數組保存到核心數據中,並根據數組中的順序嘗試從核心數據中檢索和排序對象。或者你會直接在覈心數據存儲中重新排序對象嗎?如果後者如何?拖放核心數據

#pragma mark Row reordering 
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { 
    return YES; 
} 

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath 
     toIndexPath:(NSIndexPath *)toIndexPath { 
    NSString *item = [[dataList objectAtIndex:fromIndexPath.row] retain]; 
    [dataList removeObject:item]; 
    [dataList insertObject:item atIndex:toIndexPath.row]; 
    [item release]; 
} 

回答

0

我已經通過將訂單信息存儲在coredata對象中實現了類似的行爲。我們稱之爲position

通過這個你可以將所有的對象作爲NSArray通過NSSortDescriptor與屬性position訂購。

拖動&發生拖動後,請確保您更新相應地更改了項目的位置屬性。

+0

感謝您的信息。示例代碼將不勝感激,如果你有任何。 – Leahcim

+0

http://www.timisted.net/blog/archive/core-data-drag-drop/(爲我工作,雖然有一些現代化)這適用於一個無序的對象包,用戶可以根據自己的喜好。將是有趣的,看看是否有可能使用拖放正下降到重新排列有序的關係...... – stevesliva

+0

發現,實現它https://github.com/zehrer/UIOrderedTableView – Leahcim