1

我发现了类似的问题,但没有答案(对不起,答案不起作用)。

所以我对表格进行了分组,我想动画内容更新而不是做[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/3u1M3l1w3V3J (慢动作)
  • 分组:http ://cl.ly/1O3Z2M280n0z (慢动作)

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

难道没有其他方法可以继承 UITableView 和 UITableViewCell 并使用 CoreAnimation 实现我自己的动画吗?

4

1 回答 1

0

在为表格的行设置动画时,不需要使用 CoreAnimation 实现您自己的动画。

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

由于您正在对视频中的行进行洗牌,因此您应该看一下moveRowAtIndexPath:toIndexPath:(在 UITableView 上)。你把对它的调用放在beginUpdatesandendUpdates中。

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

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

于 2012-10-02T12:27:37.180 回答