在 UIScrollView 中嵌入 UIStackView 时出现问题

Problems when embed an UIStackView in an UIScrollView

我正在通过 Interface Builder 设置一个 iOS 应用界面。 我有几个水平堆栈视图,全部嵌入在一个垂直堆栈视图中。到这里,布局似乎没问题,约束也做好了。

当我在 UIScrollView 中嵌入垂直堆栈视图时,布局变得非常糟糕。我的布局约束可能有问题,但我真的不知道是什么。这里有两张图片,代表在 UIScrollView 中嵌入之前和之后的布局:

有人知道为什么会这样吗? 提前谢谢大家。

更新

安装此约束后:

VerticalStackView.width == ScrollView.width

结果如下:

更新 2

设置以下视图层次结构(屏幕截图)和约束,您应该可以开始了:

  • ScrollView.top == View.top
  • ScrollView.leading == View.leading
  • ScrollView.bottom == View.bottom
  • ScrollView.trailing == View.trailing
  • ContentView.top == ScrollView.top
  • ContentView.leading == ScrollView.leading
  • ContentView.bottom == ScrollView.bottom
  • ContentView.trailing == ScrollView.trailing
  • ContentView.width == ScrollView.width
  • VerticalStackView.top == ContentView.top + 16
  • VerticalStackView.leading == ContentView.leading + 16
  • VerticalStackView.bottom == ContentView.bottom - 16
  • VerticalStackView.trailing == ContentView.trailing - 16

除了前四个约束中的 View,您还可以使用 SafeAreaLayoutGuide(取决于您的需要)。