iOS:更改 StackView 中 TextField 的高度(在 StackView 内部)
iOS: Change height of TextField in StackView (inside StackView)
我正在使用 Xcode 10/Swift 5/iOS 12 并得到了这个布局:
红色(垂直)StackView 设置为:
- 分布:"Fill Equally"
- 身高:300(固定)
- 框架:10(每边)
- 间距:10
5 个水平子 StackViews:
- 分布:"Fill Equally"
- 每个高度 52 像素 ((300-40)/5) - 不固定!
蓝色 View 仅占据剩余屏幕 space(顶部与红色 StackView 对齐,底部与 "SuperView" 对齐)。
标签自动占用 52 像素,但我希望两个 TextField 正好是 30 像素 (+11 above/below)。如果我只是设置高度,InterfaceBuilder 会抱怨冲突并且实际上不会改变任何东西。
如何在不改变周围水平 StackView 高度的情况下设置它们的高度?
这是一个解决方案 - 假设您希望堆栈视图中的每个 "row" 高 52 磅(标签有绿色背景,只是为了让它们的框架更容易看到)。
红色堆栈视图:
Alignment: Fill
Distribution: Fill Equally
Spacing: 10
每个水平堆栈视图:
Alignment: Center
Distribution: Fill Equally
Spacing: 0
Red View
- 包含 Red Stack View
和 Blue View
- 在所有四个边都被限制在零到 SuperView。
Red Stack View
被限制在其 SuperView(Red View
)的顶部、前导和尾部为 10 点。
Blue View
被限制在其 SuperView(即 Red View
)10 点处的前导、尾随和底部,以及 Red Stack View
底部的 10 点处的顶部。
唯一的 高度 约束设置在 Date Stack View
... Height = 52
上。由于 Red Stack View
的分布设置为 Fill Equally
,剩余的水平堆栈视图将自动获得 52 的高度。
并且,通过在每个水平堆栈视图上设置 Alignment: Center
,排列的子视图将居中对齐到 52 磅高度。
我正在使用 Xcode 10/Swift 5/iOS 12 并得到了这个布局:
红色(垂直)StackView 设置为:
- 分布:"Fill Equally"
- 身高:300(固定)
- 框架:10(每边)
- 间距:10
5 个水平子 StackViews:
- 分布:"Fill Equally"
- 每个高度 52 像素 ((300-40)/5) - 不固定!
蓝色 View 仅占据剩余屏幕 space(顶部与红色 StackView 对齐,底部与 "SuperView" 对齐)。
标签自动占用 52 像素,但我希望两个 TextField 正好是 30 像素 (+11 above/below)。如果我只是设置高度,InterfaceBuilder 会抱怨冲突并且实际上不会改变任何东西。
如何在不改变周围水平 StackView 高度的情况下设置它们的高度?
这是一个解决方案 - 假设您希望堆栈视图中的每个 "row" 高 52 磅(标签有绿色背景,只是为了让它们的框架更容易看到)。
红色堆栈视图:
Alignment: Fill
Distribution: Fill Equally
Spacing: 10
每个水平堆栈视图:
Alignment: Center
Distribution: Fill Equally
Spacing: 0
Red View
- 包含 Red Stack View
和 Blue View
- 在所有四个边都被限制在零到 SuperView。
Red Stack View
被限制在其 SuperView(Red View
)的顶部、前导和尾部为 10 点。
Blue View
被限制在其 SuperView(即 Red View
)10 点处的前导、尾随和底部,以及 Red Stack View
底部的 10 点处的顶部。
唯一的 高度 约束设置在 Date Stack View
... Height = 52
上。由于 Red Stack View
的分布设置为 Fill Equally
,剩余的水平堆栈视图将自动获得 52 的高度。
并且,通过在每个水平堆栈视图上设置 Alignment: Center
,排列的子视图将居中对齐到 52 磅高度。