带有 StackView 的 ScrollView 和固定的页脚在外面
ScrollView with StackView and fixed footer outside
Xcode 10,Swift 5(这应该完全可以在故事板中实现)
当前布局:
- ChildView (child View of very first default view)
- ButtonView
- ScrollView
- VerticalStackView
- Button
- Button
- ...
- FooterView
- HorizontalStackView
- Button A
- Button B
我需要什么限制才能始终将页脚视图保持在底部并使 UIStackView
滚动到它后面,同时仍然为 UIStackView
中的每个按钮保持固定高度?
这个设置似乎有很多问题,从里面的按钮不可点击(或 UITextField
无法交互),到 UIScrollView
不可滚动或 "Content Size Ambiguity" 错误(描述为 here)- 只是因为没有正确设置单个约束。
结果:
如果可以同时显示的按钮较少,它将无法滚动,而是只在最后一个按钮下方显示黑色背景。
如何到达:
使用预览下方的 "add new constraints" 按钮设置约束 window。
子视图:
- Trailing/Leading/Bottom:0 到 Superview
- 等高:到安全区域:
- Control-drag 从 ChildView 到安全区并选择 "Equal Heights"
1.页脚视图:
- Trailing/Leading/Bottom:0 到 Superview
- 身高:等于 50
- 顶部到 ButtonView:
- Control-drag 从 FooterView 到 ButtonView
- 选择"Top"
- 单击新约束以在检查器中将其打开(FooterView.Top 等于 ButtonView.Bottom)
2。按钮视图:
- Trailing/Leading/Top:0 到 Superview
- 底部到 FooterView(上面已经解释过)
2.1。 ScrollView(黑色):
- Trailing/Leading/Bottom/Top: 0 到 Superview
- Bottom/Top 约束使 ScrollView 远离 "spilling over"
2.1.1。垂直堆叠视图:
- Alignment/Distribution: 填充
- Trailing/Leading/Bottom/Top: 0 到 Superview
- 与 ButtonView 等宽:
- Control-drag 从 VerticalStackView 到 ButtonView 并选择 "Equal Widths"
- 这将禁用 ScrollView 的水平滚动条
2.1.1.1。按钮(灰色):
- 身高:50
- VerticalStackView 会处理剩下的事情
当然,您也可以将 'UIScrollView' 中的按钮替换为视图以创建某种类型的表单。
Xcode 10,Swift 5(这应该完全可以在故事板中实现)
当前布局:
- ChildView (child View of very first default view)
- ButtonView
- ScrollView
- VerticalStackView
- Button
- Button
- ...
- FooterView
- HorizontalStackView
- Button A
- Button B
我需要什么限制才能始终将页脚视图保持在底部并使 UIStackView
滚动到它后面,同时仍然为 UIStackView
中的每个按钮保持固定高度?
这个设置似乎有很多问题,从里面的按钮不可点击(或 UITextField
无法交互),到 UIScrollView
不可滚动或 "Content Size Ambiguity" 错误(描述为 here)- 只是因为没有正确设置单个约束。
结果:
如果可以同时显示的按钮较少,它将无法滚动,而是只在最后一个按钮下方显示黑色背景。
如何到达:
使用预览下方的 "add new constraints" 按钮设置约束 window。
子视图:
- Trailing/Leading/Bottom:0 到 Superview
- 等高:到安全区域:
- Control-drag 从 ChildView 到安全区并选择 "Equal Heights"
1.页脚视图:
- Trailing/Leading/Bottom:0 到 Superview
- 身高:等于 50
- 顶部到 ButtonView:
- Control-drag 从 FooterView 到 ButtonView
- 选择"Top"
- 单击新约束以在检查器中将其打开(FooterView.Top 等于 ButtonView.Bottom)
2。按钮视图:
- Trailing/Leading/Top:0 到 Superview
- 底部到 FooterView(上面已经解释过)
2.1。 ScrollView(黑色):
- Trailing/Leading/Bottom/Top: 0 到 Superview
- Bottom/Top 约束使 ScrollView 远离 "spilling over"
2.1.1。垂直堆叠视图:
- Alignment/Distribution: 填充
- Trailing/Leading/Bottom/Top: 0 到 Superview
- 与 ButtonView 等宽:
- Control-drag 从 VerticalStackView 到 ButtonView 并选择 "Equal Widths"
- 这将禁用 ScrollView 的水平滚动条
2.1.1.1。按钮(灰色):
- 身高:50
- VerticalStackView 会处理剩下的事情
当然,您也可以将 'UIScrollView' 中的按钮替换为视图以创建某种类型的表单。