分组表视图中的中间动画看起来很可怕

时间:2012-10-02 12:17:37

标签: ios cocoa-touch uitableview core-animation

我找到了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个动画示例:

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

除了其他方法之外,没有别的方法可以继承UITableView和UITableViewCell并使用CoreAnimation实现我自己的动画吗?

1 个答案:

答案 0 :(得分:0)

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

UITableView支持更多高级动画,而不仅仅是重新加载一个部分,我建议你看看它们。

由于您正在对视频中的行进行随机播放,因此您应该查看moveRowAtIndexPath:toIndexPath:(在UITableView上)。您将调用放在beginUpdatesendUpdates

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

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