【问题标题】:Problems when embed an UIStackView in an UIScrollView在 UIScrollView 中嵌入 UIStackView 时出现的问题
【发布时间】:2018-06-09 15:27:32
【问题描述】:

我正在通过 Interface Builder 设置 iOS 应用程序界面。 我有几个水平堆栈视图,都嵌入在一个垂直堆栈视图中。到这里,布局似乎还可以,约束也做得很好。

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

有没有人知道为什么会发生这种情况? 在此先感谢各位。

更新

安装此约束后:

VerticalStackView.width == ScrollView.width

结果如下:

更新 2

【问题讨论】:

    标签: ios xcode uiscrollview uistackview


    【解决方案1】:

    设置以下视图层次结构(屏幕截图)和约束,您应该一切顺利:

    • 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(取决于您的需要)。

    【讨论】:

    • 很遗憾没用。在我的问题更新中查看结果。
    • 我以为您已经设置了基本约束。用所有需要的约束更新了我的答案。
    • 这是正确的方法,但我无法从 UIScrollView 设置尾随 + 16 边距。查看我的更新
    • 您可以使用额外的内容视图(常规UIView)作为滚动视图的子视图,并将您的垂直堆栈视图放在该内容视图中,并带有您喜欢的边距。请参阅我的更新答案。
    • 好的,谢谢,现在我试试。你能向我解释一下为什么约束上存在这些问题吗?
    猜你喜欢
    • 2017-08-30
    • 2019-11-23
    • 1970-01-01
    • 2015-11-04
    • 1970-01-01
    • 2014-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多