当向我的数据源添加项目时,我使用 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.插入位置前截屏
2. 覆盖插入位置前的部分
3. 更改 tableView 的框架以确保插入位置下方的部分在重新加载后不会移动
4.重新加载tableView
5. 动画你的屏幕截图向上移动以显示新部分
关于ios - 添加带有向上动画的部分/行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42987157/