【问题标题】:UIScrollView setContentSize breaks view with Auto LayoutUIScrollView setContentSize 使用自动布局打破视图
【发布时间】:2012-11-18 10:29:10
【问题描述】:

我在我的 iPhone 应用程序中使用自动布局并且有一个 UIScrollView。在我的应用程序运行时,我需要在多个点更改滚动视图的内容大小(因此在viewWillAppear 中设置内容大小是没有用的,因为我在其他地方看到了这个建议)。

当我更改它时,我的子视图会跳来跳去,大概是因为它打破了自动布局约束。

那么如何在启用自动布局的情况下更改滚动视图内容大小?

谢谢。

【问题讨论】:

  • 在 viewDidAppear 中尝试,而不是在 viewWillAppear 中
  • 对不起,如果我不清楚。我当然在视图加载/出现时最初设置内容大小,但是在我自己的方法中加载/出现后,我还需要在同一个视图中多次更改它。这是我的问题。
  • 1.也许您的视图对于自动布局来说太复杂了。 2.您没有指定正确的自动布局约束,尝试一些其他的约束。 3.使用viewWillLayoutSubviews中的代码手动布局子视图。
  • 问题解决了吗?
  • @JoshKahane - 你有机会尝试 viewDidLayoutSubviews 吗?

标签: iphone objective-c uiscrollview autolayout


【解决方案1】:

我遇到了同样的问题,我知道这不是最终的解决方案,但现在,与其在viewWillLayoutSubviews 中调用它,而是将代码放在viewDidLayoutSubviews 中,它允许我设置 contentSize之后 viewController 做了它的默认业务:)

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    viewWillLayoutSubviews 中测试您的代码。苹果说:

    当视图的边界发生变化时,视图会调整其位置 子视图。您的视图控制器可以覆盖此方法以使 在视图布置其子视图之前发生变化。默认 这个方法的实现什么都不做。

    UIViewController Class Reference

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-04
      相关资源
      最近更新 更多