滚动

时间:2015-09-10 22:26:31

标签: cocoa-touch ios8 uiscrollview autolayout xcode6.3

所以我在界面构建器中创建了一个UIScrollView作为视图控制器视图的子视图,并设置了所有自动布局约束,以便调整大小以填充其超级视图(尾随,前导,底部和顶部约束设置为零)上海华)。

当我运行应用程序时,scrollview最初不会将其框架更新为与其superview相同的大小。 scrollview frame.size.width = 320即使我在iPhone 6或iPhone 6 plus模拟器上运行它。

一旦我开始滚动,滚动视图框就会更新为正确的值(与其超级视图相同)。为什么会这样?不应该自动布局自动调整与其superview相关的scrollview吗?

我设法修复此问题的唯一方法是在viewDidLoad中添加以下内容:

scrollView.frame = view.frame。

为什么会发生这种情况?这似乎不合逻辑。

非常感谢

1 个答案:

答案 0 :(得分:1)

好的,经过一些实验,我发现了。 我正在viewDidLoad中检查scrollview框架大小,它返回320 但是,似乎自动布局只会调整AFD viewDidLoad的大小,并在完成调整大小/重新定位后调用viewDidLayoutSubviews()......等等。

因此,当我检查viewDidLayoutSubviews中的帧大小时,我得到了正确的帧大小375(对于iPhone 6)。

谢谢