2012-10-02 34 views
1

我发现similar question,但没有答案(对不起,答案不起作用)。分组表视图中的中间动画看起来很可怕

所以我分组表,我想动画内容更新,而不是做[tableView reloadData]。 我这样做,通过使用此片的代码:

// Data source already updated here, but reloadData wasn't called 
[self.tableView beginUpdates]; 
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationMiddle]; 
[self.tableView endUpdates]; 

我上传的动画的2个例子:http://cl.ly/1O3Z2M280n0z(慢动作):

正如你所看到的差异是巨大的。 我根本不会更改我的代码,只需更改故事板中的tableView样式即可。

是否有人没有其他方式,然后继承UITableView和UITableViewCell并使用CoreAnimation实现我自己的动画?

回答

0

在动画表格的行时,使用CoreAnimation实现自己的动画不是必需的。

UITableView支持比简单地重新加载部分更先进的动画,我建议你看看它们。

由于您正在洗牌视频中的行,您应该看看moveRowAtIndexPath:toIndexPath:(在UITableView上)。您将呼叫置于beginUpdatesendUpdates之内。

通过了解重新洗牌之前和之后的顺序,您可以将所有行移动到新的位置并让它们滑入正确的位置。

需要一些思考来确定每行应该在哪里走,但这比滚动完全自定义的解决方案要容易得多。

+0

添加其他类型的动画不是问题。淡入淡出的动画效果非常完美,但我们希望“中间”动画看起来有点像机场展示。 – OgreSwamp

相关问题