Iphone 在UITableView中通过动画编程移动行

Iphone 在UITableView中通过动画编程移动行,iphone,cocoa-touch,uitableview,animation,core-animation,Iphone,Cocoa Touch,Uitableview,Animation,Core Animation,我想将一行移动到我的UITableView的底部,具有酷炫的动画效果,就像在中一样 就像我们可以使用重新排序控件移动行一样,如下所示: 如何创建这样的动画?重要提示:此答案假设iPhone OS 3.x。对于iOS 5.x 我不知道什么是“酷动画效果就像在杂货店购物清单应用程序”。不是每个人都有这个应用程序 无法以编程方式移动行 但是,可以同时插入和删除行以模拟移动 [tableView beginUpdates]; [tableView deleteRowsAtIndexPaths:[NS

我想将一行移动到我的
UITableView
的底部,具有酷炫的动画效果,就像在中一样

就像我们可以使用重新排序控件移动行一样,如下所示:


如何创建这样的动画?

重要提示:此答案假设iPhone OS 3.x。对于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];

这类似于我所做的,允许从一个滚动视图拖放到另一个滚动视图


您需要创建一个复制/虚拟单元(用于视觉效果),然后删除原始单元,然后设置复制的动画,然后插入底部,最后删除复制/虚拟单元。

在IOS 5中,这可以通过以下
UITableView
选择器完成:

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

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

Kenny,我刚才说的效果是一个下降行动画,就像在桌子处于重新排列模式时用手指拖动一样。我想知道是怎么做到的。我考虑将单元格内容绘制成半透明的uiimage,然后将带有动画的图像移动到所需位置,但我不确定这是否是最佳解决方案找到解决方案了吗?我有一个类似的问题:&也许您只需要将RowAnimation效果设置为:uitableViewRowAnimationBottom太棒了!指向选择器文档的链接:接下来的一个明显问题是如何在对数组进行排序后找出这些索引路径。。。?也许我应该对数组进行排序,并计算出每个元素的前后索引?