Ios UITableView。重新加载节后偏移量不正确

Ios UITableView。重新加载节后偏移量不正确,ios,swift,uitableview,Ios,Swift,Uitableview,当我点击以显示/隐藏内容时,我有下一个代码 func showHideAssets() { isOpenHiddenAssets = !isOpenHiddenAssets tableView.beginUpdates() tableView.reloadSections(IndexSet(integer: 1), with: .fade) tableView.endUpdates() } 当第一节包含许多项时,在重新加载节后,表格将以不正确的偏移量滚

当我点击以显示/隐藏内容时,我有下一个代码

func showHideAssets() {
     isOpenHiddenAssets = !isOpenHiddenAssets

     tableView.beginUpdates()
     tableView.reloadSections(IndexSet(integer: 1), with: .fade)
     tableView.endUpdates()
}
当第一节包含许多项时,在重新加载节后,表格将以不正确的偏移量滚动到底部

func numberOfSections(in tableView: UITableView) -> Int {
     return 2
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
     if section == 0 {
          return 10
     }
     return isOpenHiddenAssets ? assetsHiddenItems.count : 0
}
第一节有3个项目的视频。它工作得很好


第一节有10个项目的视频。它有错误。

解决方案正在替换

func tableView(tableView:UITableView,heightForRowAt indexath:indexPath)->CGFloat


重新加载部分后,请尝试
tableView.reloadData()
。这没有帮助,请尝试实现:
func tableView(\uu.tableView:UITableView,estimatedHeightForRowAt indexath:indexath)->CGFloat
。尝试使用80.0这样的值(其实并不重要),它会有所帮助。感谢在我的例子中,它在可折叠表中工作,只需添加
estimatedHeightForRowAt
,返回的结果与
heightForRowAt
返回的结果不一样(即即使返回+1)
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat