基于屏幕高度改变UIStackView项目的高度
我使用UIStackViews在最新的Xcode,布局如下所列:基于屏幕高度改变UIStackView项目的高度
文本标签
选择器(1分量)
文本标签
选择器(1成分)
文本标签
选取器(4个组分)
分段控制(3段)
我有以下UI约束TS:
StackViewTop = SafeAreaTop + 8
StackViewLeading = SafeAreaLeading + 8
StackViewTrailing = SafeAreaTrailing - 8
Picker_1 = 96PX
Picker_2 = Picker_1身高
Picker_3 = Picker_2身高
使用固有尺寸对于组件(除了我设置为96px的3个拾取器),所有东西都适合iPhone SE(568px),但拾取器相当短。在任何其他设备上,有更多的垂直空间使捡拾器更高。
我希望在有垂直空间时,三位捡拾者将他们的身高增加到他们的固有身高;我无法在界面生成器中找到正确的设置组合来完成此项工作。有没有办法做到这一点?
这个问题的第二部分是,如果屏幕够宽,我希望堆栈视图的宽度被限制(可能为512),并居中。
说到问题的第一部分。
这是你应该如何配置你的堆栈视图。除了你所做的之外,我还会添加一个大于或等于符号的底部约束。它不会让栈视图超出界限。
更新
你layout考虑看看后,我改变了解决一点点。
- 拾取器的高度平等配置与您所做的相同。
- 顶部选取器的高度限制大于或等于96.如果有足够的空间,它会让自动布局引擎增加它的大小。
- 所有标签和段控件都有一个垂直内容 压缩阻力优先级设置为1000(必需)。
- 顶级采摘器的垂直内容压缩阻力为 ,优先级设置为250(低)。
你可以在这个GitHub repository找到我的实现。
这是结果。
卡米尔,感谢您的参与,我一直在玩压缩阻力。您所建议的设置仍然不会满足我期待的要求。如果有问题,我正在运行Xcode 9.1 Beta。
拾取器没有变得更高。
这里是我所得到的  –
大卫,我几乎复制了您的布局在侧面项目和Xcode 9(稳定)它看起来像这[截图](https://raw.githubusercontent.com/kamil-szostakowski/stack-overflow/master/stackview-pickers/ StackOverflow的/ Screenshot.png)。我把它推到[GitHub](https://github.com/kamil-szostakowski/stack-overflow/tree/master/stackview-pickers/StackOverflow),所以请随时去看看。 –
谢谢,我想出了我的问题。我隐藏了主StackView的一部分,并且有一个将大小拉到0的约束。 –
你到目前为止试过了什么?你有什么限制,为什么他们不工作? –