2010-02-22 56 views

回答

7

重要:這個答案假設iPhone OS 3.x的See the answer above適用於iOS 5.x

我不知道什麼是「酷動畫效果就像在雜貨店購物清單應用程序」。並非每個人都擁有該應用


行不能以編程方式移動。

但是,您可以同時插入和刪除一行來模擬移動。

[tableView beginUpdates]; 
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:rowToMove] 
       withRowAnimation:UITableViewRowAnimationLeft]; 
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPathToMoveTo] 
       withRowAnimation:UITableViewRowAnimationLeft]; 
// update your dataSource as well. 
[tableView endUpdates]; 
+0

肯尼, 我在談論的影響是降排的動畫,只是例如桌子處於重新排列模式時用手指拖動它。 我想知道它是如何完成的。我想將細胞內容繪製成半透明的圖像,然後用動畫將圖像移動到所需位置,但我不確定這是最佳解決方案 – Alex 2010-02-23 19:38:08

+0

您找到了解決方案嗎?我有一個類似的問題:http://stackoverflow.com/questions/5112588/how-make-the-same-animation-like-uitableview-reorder-of-cells&http://stackoverflow.com/questions/5315990/如何複製細胞之間桌 - 爲最脈衝應用 – mamcx 2011-06-24 21:49:34

+0

也許你只需要RowAnimation效果:UITableViewRowAnimationBottom – ugiflezet 2011-09-12 10:32:44

2

這是有點類似於我所做的允許從一個滾動視圖拖放到另一個滾動視圖。

您將要創建一個重複/虛擬池(視覺效果),然後刪除原始細胞,然後進行動畫處理的重複,然後插入底部,然後最終刪除重複/虛擬單元。

26

在IOS 5這可以用以下UITableView選擇來完成:

- (void)moveRowAtIndexPath:(NSIndexPath *)indexPath toIndexPath:(NSIndexPath *)newIndexPath 

例如:

[self.tableView moveRowAtIndexPath:indexPath toIndexPath:[NSIndexPath indexPathForRow:[items count] - 1 inSection:1]]; 
+1

太棒了!鏈接選擇文檔:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006943-CH3-SW55 – yonel 2012-02-14 16:07:16

+0

明顯後續問題是如何找出排序數組後的這些indexPaths?也許我應該對數組進行排序並找出每個元素的前後索引? – devios1 2013-08-18 15:53:04