为啥我的 UITableView 没有出现在正确的滚动位置?

Posted

技术标签:

【中文标题】为啥我的 UITableView 没有出现在正确的滚动位置?【英文标题】:Why isn't my UITableView appearing in the correct scroll position?为什么我的 UITableView 没有出现在正确的滚动位置? 【发布时间】:2010-05-09 05:24:50 【问题描述】:

我有一个基于拆分视图的应用程序,它呈现一个主从界面,并在纵向模式下使用弹出框来呈现主列表。弹出框显示了一个最终由NSFetchedResultsController 的子类填充的分段表视图。我可以点击工具栏按钮来显示主列表,滚动到任意行,然后点击该行来关闭弹出框。

我的问题是,如果表格滚动到第二部分的顶部,当我关闭弹出框然后点击工具栏按钮重新呈现它时,表格的滚动位置始终设置为第一行第二部分位于列表顶部。如果我没有滚动到第二部分的顶部,它会在表格再次出现时正确地记住它的滚动位置。

类似地,在横向模式下,如果我将表格滚动到第三部分的顶部然后旋转到纵向,当我回到横向时,滚动位置始终设置为第三部分的第一行位于列表的顶部。

我尝试在主视图控制器的-viewWillAppear 以及拆分视图委托的splitViewController:popoverController:willPresentViewController: 中调用-scrollToNearestSelectedRowAtScrollPosition:animated,但没有效果。有人知道我可能做错了什么吗?

【问题讨论】:

【参考方案1】:

您是否尝试存储tableView.contentOffset

CGPoint offset = tableView.contentOffset;

...
...
...

[tableView setContentOffset: offset];

【讨论】:

为什么最令人沮丧的问题经常有这么简单的解决方案?非常感谢您向我介绍 contentOffset 属性。

以上是关于为啥我的 UITableView 没有出现在正确的滚动位置?的主要内容,如果未能解决你的问题,请参考以下文章

为啥这个 UIView 没有出现在 UITableView 前面?

为啥我的 UITableView 在 iOS 7 中被切断了?

为啥来自 customTableViewCell 的 UiTextField 没有在我的 UiViewController 中使用 UITableView 返回字符串

我的 UITableView 顶部的问题定位横幅

为啥我的函数没有重新加载 UITableView 的数据?

为啥我的 UITableView 底部有一点填充?