【问题标题】: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,但没有效果。有人知道我可能做错了什么吗?

【问题讨论】:

    标签: iphone uitableview ipad uisplitviewcontroller uipopovercontroller


    【解决方案1】:

    您是否尝试存储tableView.contentOffset

    CGPoint offset = tableView.contentOffset;
    
    ...
    ...
    ...
    
    [tableView setContentOffset: offset];
    

    【讨论】:

    • 为什么最令人沮丧的问题经常有这么简单的解决方案?非常感谢您向我介绍 contentOffset 属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    相关资源
    最近更新 更多