带有 StackView 和固定页脚的 ScrollView
Posted
技术标签:
【中文标题】带有 StackView 和固定页脚的 ScrollView【英文标题】:ScrollView with StackView and fixed footer outside 【发布时间】:2019-10-29 02:42:21 【问题描述】: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
中的每个按钮保持固定高度?
【问题讨论】:
【参考方案1】:此设置似乎引起了多个问题,从内部按钮不可点击(或无法与之交互的UITextField
s)到UIScrollView
不可滚动或“内容大小歧义”错误(描述 here) - 只是因为没有正确设置单个约束。
结果:
如果可以同时显示的按钮较少,它将无法滚动,而只是在最后一个按钮下方显示黑色背景。
如何到达:
使用预览窗口下方的“添加新约束”按钮设置约束。
子视图:
尾随/领先/底部:0 到 Superview 等高:到安全区域: 按住 Control 从 ChildView 拖动到安全区域并选择“等高”1.页脚视图:
尾随/领先/底部:0 到 Superview 身高:等于 50 顶部到按钮视图: 按住 Control 从 FooterView 拖动到 ButtonView 选择“顶部” 单击新约束以在检查器中将其打开(FooterView.Top 等于 ButtonView.Bottom)2.按钮视图:
尾随/前导/顶部:0 到 Superview 从底部到 FooterView(上面已经解释过)2.1.滚动视图(黑色):
尾随/前导/底部/顶部:0 到 Superview Bottom/Top 约束使 ScrollView 不会“溢出”2.1.1。垂直堆栈视图:
对齐/分布:填充 尾随/前导/底部/顶部:0 到 Superview 与 ButtonView 等宽: 按住 Control 从 VerticalStackView 拖动到 ButtonView 并选择“等宽” 这会禁用 ScrollView 的水平滚动条2.1.1.1。按钮(灰色):
身高:50 VerticalStackView 负责其余的工作当然你也可以用视图替换“UIScrollView”中的按钮来创建某种类型的表单。
【讨论】:
以上是关于带有 StackView 和固定页脚的 ScrollView的主要内容,如果未能解决你的问题,请参考以下文章