【问题标题】:UIScrollView's Frame getting changed randomlyUIScrollView 的 Frame 随机更改
【发布时间】:2013-01-14 17:22:02
【问题描述】:

在我看来,我使用的是由屏幕上半部分的 UITableViewController 控制的 UITableView。剩余的屏幕用于包含由主 UIViewController 控制的视图的 UIScrollView。

当我在 UITableViewController 中执行下拉刷新时,(由于某种原因,如果表条目的数量小于或大于初始加载值,则主 UIViewController 框架中的 UIScrollView 会更改为屏幕大小.. .

基本上它会破坏我的分页,除非我将滚动视图重置回初始大小...

我不知道为什么会发生这种情况,因为 UITableViewController 中没有使用 UIScrollView。 UITableViewController 中使用的唯一滚动视图是 UITableView 用于处理下拉刷新...

有谁知道为什么主 UIScrollView 的 contentSize 会随机更改,而它甚至不应该从 UITableViewController 类访问?

谢谢

【问题讨论】:

    标签: ios objective-c xcode uiscrollview uitableview


    【解决方案1】:

    刚刚在这里尝试过,我无法复制您的体验。我猜你有一个意外或不一致的视图/控制器层次结构?查看表格的控制器和滚动视图的公共超级视图。那里有什么鱼腥味吗?请记住:视图控制器管理 视图 集。容器视图控制器管理其他视图控制器并具有特殊规则(参见:The View Controller Programming Guide,尤其是-addChildViewController:等)。

    我建议打开一个空白项目并尝试以最简单的形式重新创建问题。如果它被神奇地修复了,有什么不同?如果它仍然给您带来麻烦,请给我们发送一个链接,以便我们查看您如何连接的详细信息。

    【讨论】:

    • 我猜这可能是个问题。除了在我的项目中初始化 Viewcontroller 的实例变量之外,我没有对管理这些控制器的 containerView 做任何特别的事情。我还需要做什么才能正确设置它?我现在只是添加了addChildViewController,但是没有效果。
    • 阅读上述链接文档中的“创建自定义容器视图控制器”部分以开始使用。您可能还想观看 WWDC 2011 Session 102“实现 UIViewController Containment”。但这感觉不像是一个简单的错误——可能有一些微妙的事情是错误的。所以我仍然建议制作一个新的“最简单”的实现(也许所有三个视图都由单个根视图控制器管理?)只是为了确保这是可重现的并且是由你认为的原因引起的。
    猜你喜欢
    • 2012-01-10
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 2022-01-20
    • 2019-05-21
    相关资源
    最近更新 更多