分组表视图中的中间动画看起来很糟糕
Posted
技术标签:
【中文标题】分组表视图中的中间动画看起来很糟糕【英文标题】:Middle animation in grouped table view looks horrible 【发布时间】:2012-10-02 12:17:36 【问题描述】:我找到了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/3u1M3l1w3V3J(慢动作) 分组:http://cl.ly/1O3Z2M280n0z(慢动作)如您所见,差异很大。 我根本没有改变我的代码,只是改变了故事板中的 tableView 样式。
难道没有其他方法可以继承 UITableView 和 UITableViewCell 并使用 CoreAnimation 实现我自己的动画吗?
【问题讨论】:
【参考方案1】:在为表格的行设置动画时,不必使用 CoreAnimation 实现您自己的动画。
UITableView 支持比简单地重新加载一个部分更高级的动画,我建议你看看它们。
由于您正在改组视频中的行,因此您应该查看moveRowAtIndexPath:toIndexPath:
(在 UITableView 上)。您将调用放在beginUpdates
和endUpdates
中。
通过了解重新洗牌前后的顺序,您可以将所有行移动到新的位置,并让它们滑到正确的位置。
要弄清楚每一行应该去哪里需要一些思考,但这比滚动完全自定义的解决方案要容易得多。
【讨论】:
添加其他类型的动画不是问题。淡入淡出动画效果完美,但我们想要看起来有点像机场展示的“中间”动画。以上是关于分组表视图中的中间动画看起来很糟糕的主要内容,如果未能解决你的问题,请参考以下文章