UIStackView 内的 ScrollView

ScrollView inside a UIStackView

这是我的视图层次结构

-- UIStackView --- UIScrollView -- UIImageView

StackView 分布设置为 .FillProportionally 但这不起作用,因为 UIScrollView 没有固有的内容大小。

所以我的问题是,由于 UIIMageView 具有固有的内容大小,我是否有任何方法可以将该内容大小传递给 UIScrollView,以便 StackView 可以显示适合视图的大小。

我已经尝试根据 widthUIImageViewheight 设置 scrollView 的 contentSize,但似乎也不起作用。

如果这是另一种方法,我也不确定在哪里设置约束,我需要基于 ImageView 的 contentSize 为 ScrollView 设置动态大小,这样固定约束就不会帮助。

我还应该指出将 ImageView 作为 scrollView 的子视图的原因是能够在 StackView

中调整 ImageView 的大小

我在回答我自己的问题

您需要覆盖 intrinsicContentSize 属性 的 UIScrollView

在这种情况下

override func intrinsicContentSize() -> CGSize {
    if let image = imageView.image {
        return CGSizeMake(image.size.width, image.size.height)
    }
    return CGSizeMake(0, 0)
}