【发布时间】:2019-06-30 21:34:38
【问题描述】:
在我的 VC 中,我有表格视图。我想记住确切的滚动位置,这样当用户回到这个视图时,我可以滚动到相同的位置。我的要求是当用户返回查看时我必须重新加载数据。
我尝试过使用内容偏移方法,但是这个偏移量超出了桌面高度,所以这个解决方案对我不起作用。
我试过保存 indexPath 并滚动到这个位置,但这并没有给出确切的位置。我必须指定不是确切位置的中间、顶部或底部。
那么我们如何记住准确的滚动位置并在重新加载表中的数据后滚动到该位置?
self.tableView.scrollToRow(at: scrollToSavedIndexPath, at: UITableView.ScrollPosition.middle, animated: false)
【问题讨论】:
-
如下所述,
contentOffset是执行此操作的正确方法。如果它不起作用,那么您的单元格高度或contentInset.top在您重新加载时可能正在改变 - 或者您在重新加载之前重新应用contentOffset? -
tableViewCell 的高度是怎么设置的?这些是动态的吗?如果是,那可能是 contentOffset 更改的问题。尝试为 tableViewCells 提供一个恒定的高度,然后看看它是否有效。然后我们可以讨论如何解决这个特定问题。
-
单元格高度在 IB 中都是固定的。
标签: ios swift uitableview