为什么我的UITableView出现在正确的滚动位置?
问题描述:
我有一个基于分割视图的应用程序,它提供主 - 细节界面,并使用弹出窗口在纵向模式下显示主列表。弹出窗口提供了一个分段表格视图,最终由NSFetchedResultsController
的子类填充。我可以点击工具栏按钮来显示主列表,滚动到任何行,然后点击该行以关闭弹出窗口。为什么我的UITableView出现在正确的滚动位置?
我的问题是,如果表格滚过第二部分的顶部,当我关闭弹出窗口然后点击工具栏按钮重新显示它时,表格的滚动位置始终设置为第一第二部分的行位于列表的顶部。如果我没有滚动过第二部分的顶部,那么当表格再次出现时,它会正确记住它的滚动位置。
同样,在横向模式下,如果我滚动表格超过第三部分的顶部,然后旋转到纵向,当我回到横向时,滚动位置始终设置为使第三部分的第一行是在列表顶部。
我试图在主视图控制器的-viewWillAppear
以及分割视图委托的splitViewController:popoverController:willPresentViewController:
中调用-scrollToNearestSelectedRowAtScrollPosition:animated
,但没有任何效果。任何人都知道我可能做错了什么?
答
你试过存储tableView.contentOffset
?
CGPoint offset = tableView.contentOffset;
...
...
...
[tableView setContentOffset: offset];
最令人沮丧的问题是如何经常有如此简单的解决方案?非常感谢我提供了contentOffset属性。 – 2010-05-09 05:45:28
@zbrimhall,没问题:) – 2010-05-09 05:46:50