我有一个带有动态高度单元格的tableView。
如果在顶部一直滚动时将新的单元格添加到顶部,则它会正确设置动画。
但是,如果在向下滚动时在顶部添加一个单元格,则tableView会跳转。
有没有办法使它平滑?甚至更好地保持位置?
视频:https://youtu.be/wLNV_Kmkq0M
高度计算代码:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
if indexPath.section == 1 || indexPath.section == 2 {
return WorldMessageIdsStore.shared.nearby.getCellHeight(indexPath: indexPath, expanded : self.currentSelectedIndexPath == indexPath ? true : false, depending: indexPath.section == 1 ? true : false ) ?? UITableViewAutomaticDimension
} else {
return UITableViewAutomaticDimension
}
}
单元格添加部分的代码:
WorldMessageIdsStore.shared.worldMessages = newWorldMessages // updating the model
self.tableView.beginUpdates()
self.tableView.deleteRows(at: deleteIndexes, with: .fade)
self.tableView.insertRows(at: insertIndexes, with: .fade)
self.tableView.endUpdates()
有人可以帮我吗?