为啥我的 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 返回字符串