UIScrollView setContentSize 使用自动布局打破视图
Posted
技术标签:
【中文标题】UIScrollView setContentSize 使用自动布局打破视图【英文标题】:UIScrollView setContentSize breaks view with Auto Layout 【发布时间】:2012-11-18 10:29:10 【问题描述】:我在我的 iPhone 应用程序中使用自动布局并且有一个 UIScrollView
。在我的应用程序运行时,我需要在多个点更改滚动视图的内容大小(因此在viewWillAppear
中设置内容大小是没有用的,因为我在其他地方看到了这个建议)。
当我更改它时,我的子视图会跳来跳去,大概是因为它打破了自动布局约束。
那么如何在启用自动布局的情况下更改滚动视图内容大小?
谢谢。
【问题讨论】:
在 viewDidAppear 中尝试,而不是在 viewWillAppear 中 对不起,如果我不清楚。我当然在视图加载/出现时最初设置内容大小,但是在我自己的方法中加载/出现后,我还需要在同一个视图中多次更改它。这是我的问题。 1.也许您的视图对于自动布局来说太复杂了。 2.您没有指定正确的自动布局约束,尝试一些其他的约束。 3.使用viewWillLayoutSubviews中的代码手动布局子视图。 问题解决了吗? @JoshKahane - 你有机会尝试 viewDidLayoutSubviews 吗? 【参考方案1】:我遇到了同样的问题,我知道这不是最终的解决方案,但现在,与其在viewWillLayoutSubviews
中调用它,而是将代码放在viewDidLayoutSubviews
中,它允许我设置 contentSize之后 viewController 做了它的默认业务:)
希望对您有所帮助。
【讨论】:
【参考方案2】:在viewWillLayoutSubviews
中测试您的代码。苹果说:
当视图的边界发生变化时,视图会调整其位置 子视图。您的视图控制器可以覆盖此方法以使 在视图布置其子视图之前发生变化。默认 这个方法的实现什么都不做。
UIViewController Class Reference
【讨论】:
以上是关于UIScrollView setContentSize 使用自动布局打破视图的主要内容,如果未能解决你的问题,请参考以下文章
UIScrollView里面的UIScrollView:滚动
问题:UIScrollview 弹跳使父 UIScrollview 弹跳
UIScrollView 嵌入其他 UIScrollView