使用向上动画添加节/行

时间:2017-03-23 21:17:42

标签: ios swift uitableview animation

在我的数据源中添加项目时,我使用tableView.reloadData()并调整表格的contentOffset,使内容保持在同一位置,新添加的部分位于顶部(不一定是可见的)。

我用来执行此操作的代码如下所示:

// add item to data source

let height = tableView.contentSize.height
var offset = tableView.contentOffset

tableView.reloadData()

let newSet = CGPoint(x: offset.x, y: offset.y + tableView.contentSize.height - height)

tableView.contentOffset = newSet.y < 0 ? offset : newSet

这样可行,但没有动画。我想要实现的是在当前部分的顶部添加部分。如果新部分可见,则应向上移动。

如果我插入该部分而不是使用reloadData(),则新部分下方的所有内容都将向下设置动画。

tableView.insertSections(IndexSet([1]), with: .automatic)
// All the content will move downwards even after setting the offset

在将新部分插入表格后,我应该怎么做才能将新部分向上设置动画?

1 个答案:

答案 0 :(得分:1)

没有找到一个简单的方法。也许你可以试试:
1.在插入位置之前拍摄屏幕 2.在插入位置之前盖住零件 3.更改tableView的框架以确保插入位置下方的部件在重新加载后不会移动 4.重新加载tableView
5.动画屏幕截图以向上移动以显示新部分