Xcode 10,Swift 5(这应该完全在Storyboard中是可行的)

当前布局:

- ChildView (child View of very first default view)
    - ButtonView
        - ScrollView
            - VerticalStackView
                - Button
                - Button
                - ...
    - FooterView
         - HorizontalStackView
            - Button A
            - Button B


我需要始终保持页脚视图在底部并使UIStackView滚动到其后,同时仍为UIStackView中的每个按钮保持固定高度的哪些限制?

最佳答案

此设置似乎引起了许多问题,从内部的不可单击按钮(或无法与之交互的UITextField)到无法滚动的UIScrollView或“内容大小歧义”错误(描述为)-只是因为单个约束设置不正确。

结果:

here

如果可以同时显示的按钮较少,则该按钮将不会滚动,而仅在最后一个按钮下方显示黑色背景。

如何到那:

使用预览窗口下方的“添加新约束”按钮设置约束。

ios - 具有StackView和外部固定页脚的ScrollView-LMLPHP

ChildView:


尾随/领先/底部:0到Superview
等高:到安全区域:


按住Control键将其从ChildView拖动到安全区域,然后选择“等于高度”



1. FooterView:


尾随/领先/底部:0到Superview
高度:等于50
顶部到ButtonView:


按住Control键并从FooterView拖动到ButtonView
选择“顶部”
单击新约束以在检查器中将其打开(FooterView.Top等于ButtonView.Bottom)



ios - 具有StackView和外部固定页脚的ScrollView-LMLPHP

2. ButtonView:


尾随/领先/顶部:0到Superview
从底部到FooterView(已在上面进行了解释)


2.1。 ScrollView(黑色):


尾随/领先/底部/顶部:0到Superview
底部/顶部约束使ScrollView不会“溢出”


2.1.1。 VerticalStackView:


对齐/分布:填充
尾随/领先/底部/顶部:0到Superview
等于ButtonView的宽度:


按住Control键将其从VerticalStackView拖动到ButtonView并选择“相等宽度”
这将禁用ScrollView的水平滚动条



2.1.1.1。按钮(灰色):


身高:50
VerticalStackView负责其余的工作


当然,您也可以将“ UIScrollView”中的按钮替换为视图以创建某种类型的表单。

10-07 18:38