ios - .reloadSections 后 UITableView 的偏移量不正确

标签 ios swift uitableview

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

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 个项目。它运作良好 video 1

视频的第一部分有 10 个项目。它有错误。 video 2

最佳答案

解决办法是更换

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

func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat

关于ios - .reloadSections 后 UITableView 的偏移量不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50098984/

相关文章:

ios - UISearchController 未在 UITableViewController 中搜索

ios - Eureka 表格 : How to change form global tint colour

iOS 设备计算/内存限制

ios - 动画后执行 segue 需要很长时间

ios - 尝试将圆圈添加到 iOS 照片库中的图像上

objective-c - UITableView 不会显示 headerView.xib

ios - 删除本地化并重命名为 uibutton 后应用程序无法启动

ios - 隐藏 View 并使用自动布局重新定位其他 View

ios - swift 中的 .successor() 是什么?

ios - 打开语音时未调用 didSelectRowAtIndexpath