我使用的內和跨段拖放行我可以用table來拖動tableview中的部分嗎?
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath
toIndexPath:(NSIndexPath *)destinationIndexPath{
}
方法。我是否也可以用節來執行拖動操作?
我使用的內和跨段拖放行我可以用table來拖動tableview中的部分嗎?
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath
toIndexPath:(NSIndexPath *)destinationIndexPath{
}
方法。我是否也可以用節來執行拖動操作?
它可能在概念上(以及在技術上)更簡單地將級別退回到表視圖,其中每行對應於要重新排序的表的部分。也許你可以使用「重新排序部分」按鈕來調用它,顯示部分表視圖,重新排序,然後在細節表視圖上強加重新排序。 我認爲如果您嘗試在單個表格內完成所有操作,那麼您將會挫敗自己和用戶。我的2美分。 -Mike
老問題,我知道,但我只是實現了一些自己做的事情,所以我想分享答案,以防止其他人偶然發現這一點。
我的基本方法是在每個部分的頂部添加一行代表部分。我還在每節的末尾添加了編輯樣式爲UITableViewCellEditingStyleInsert
的「添加新節」行,以允許直接在視圖內創建新節。所以,對於每一個部分的行是這樣的:
(我有幾個簡單的方法,以「編輯模式indexPath」和「真實數據indexPath」之間的轉換。)
對於移動部分,在p在UITableViewDelegate Protocol
方法tableView:targetIndexPathForMoveFromRowAtIndexPath:toProposedIndexPath:
中檢查刪除的移動以確保該部分行移動得「足夠遠」(在另一部分行的上方或下方)。返回的indexPath被剪切到剛好在最接近的部分行的上方或下方(取決於向上還是向下移動),以向用戶指示它將被移動的位置。
在tableView:moveRowAtIndexPath:toIndexPath:
段更改在數據源中,然後reloadData
消息發送到tableView以顯示更改。使用reloadData
而不是moveSection:toSection:
,因爲對於後者,由於行移動而導致數據源和顯示不同步,並且會導致異常。
你有這樣的特殊需求嗎? – Ravin 2011-04-14 12:57:13
是的,我願意..這會讓我的應用用戶的生活變得更輕鬆.. – neha 2011-04-14 14:22:52