使用 UIScrollView 自动布局

Autolayout with UIScrollView

我在 Xcode 中使用自动布局,并且正在创建一个相当高的 (1300px) ViewController 并带有 uiscrollview 来上下导航。我制作了 viewcontroller 自由形式,所以它的尺寸是 [375,1300]。然后我合并了滚动视图,添加了内容视图以及所有子视图并约束了所有内容,没有留下任何约束错误。在运行时没有错误,但是当我想让它非常高(~1300 像素)并且可以滚动时,所有内容都被弄脏了正常的屏幕大小。关于我做错了什么的任何线索?

下图显示了问题所在:

  1. The Outer Black Blox 是 ViewController 的视图

  2. 内部黑框是子视图

  3. 蓝框就是屏幕上显示的内容

确保以下内容正确:

  1. 4 个内容视图是 UIScrollView 的子视图,而不是您的视图控制器。
  2. 4 个内容视图的自动布局约束必须仅引用 UIScrollView,而不是视图控制器的视图。
  3. 第 4 个框不能有底部约束。

看起来第 4 个框有一个约束,使其底部与视图控制器视图的底部对齐。这将迫使其他观点混为一谈。第 4 个框也不能有底部约束,以便滚动视图可以调整自身大小以包含它的子视图。

是的,你是正确的@Ryan Cocuzzo。我认为您需要将子视图优先级设置为 1000 到 250。请参见下面的屏幕截图。

1) Select子视图的高度约束

2)然后去size inspector看

3) 现在将优先级限制从 1000 更改为 250。

4)最后变成这样