添加带有向上动画的部分/行
Posted
技术标签:
【中文标题】添加带有向上动画的部分/行【英文标题】:Adding section / rows with an upwards animation 【发布时间】:2017-03-23 21:17:41 【问题描述】:向我的数据源添加项目时,我使用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】:没有找到简单的方法。也许你可以试试: 1.插入位置前截图 2.在插入位置之前覆盖零件 3. 更改 tableView 的框架以确保插入位置下方的部分在重新加载后不会移动 4.重新加载tableView 5. 为您的屏幕截图设置动画以向上移动以显示新部分
【讨论】:
以上是关于添加带有向上动画的部分/行的主要内容,如果未能解决你的问题,请参考以下文章