UIScrollView 调整自身大小

Posted

技术标签:

【中文标题】UIScrollView 调整自身大小【英文标题】:UIScrollView Resizing Itself 【发布时间】:2015-07-22 20:39:15 【问题描述】:

我在 VC 中有一个 UIScrollView。在我的viewDidLoad 中,我调用了一个方法来设置内容大小。然而,问题在于它将 contentSize 设置为 638,但它立即设置为 800。一旦我旋转,我再次调用该方法,它会将自身更正为 638。

所以,在加载我的 VC 时发生了一些事情。此外,如果我延迟该方法调用并在我的 viewDidLoad 之后 0.01 秒调用它,它可以正常工作且花花公子。

有没有人知道 ios 7 内部会导致滚动视图自行调整大小的任何内容?

更多信息:我的超级班级都没有接触它。他们有一个滚动视图的属性,但我可以删除该属性并且它构建得很好。所以这是我编写的唯一一个涉及滚动视图的 contentSize 的类。

这不会在 iOS 8 上发生,只会在 iOS 7 上发生。

【问题讨论】:

在自动布局下,滚动视图根据它(滚动视图)和它的子视图之间的约束来设置它的contentSize。有关详细信息,请参阅“Technical Note TN2154 UIScrollView And Autolayout”。这可能是你的问题吗? 尝试在viewWillAppear 中设置内容大小。您可能有一些限制,或者在界面生成器中的某处将内容视图的大小设置为 800? 【参考方案1】:

我不知道为什么会这样,但我的应用程序中也确实发生了这种情况。 您可以通过在 viewDidLoad 和 ViewWillAppear 中调用您的方法来修复它。

【讨论】:

以上是关于UIScrollView 调整自身大小的主要内容,如果未能解决你的问题,请参考以下文章

调整滚动视图框架的大小时,UIScrollView 子视图的大小调整不正确

UIScrollView 不会自动调整大小

UIScrollView 子视图不会调整大小

调整容器 uiscrollview 中所有 uiscrollview 的大小

调整 UIScrollView 的大小

如何动态调整 UIScrollView 的大小?