Xcode 15中水平StackView高度无法设置及嵌入尺寸异常求助
Xcode 15水平StackView控件缩放及高度灰化问题解决办法
问题现象
- 4个控件嵌入水平StackView后,全部被压缩到极小尺寸
- 设置「等宽填充」仅能分散控件间距,无法让控件拉伸填充StackView
- StackView的高度属性灰化,无法手动修改
解决步骤
一、修复控件被压缩的问题
调整内部控件的布局优先级
选中每个嵌入的控件,打开右侧Size Inspector:- 把**垂直/水平方向的内容压缩抵抗优先级(Content Compression Resistance Priority)**调高(比如设为750+),防止StackView压缩控件尺寸
- 把**内容拥抱优先级(Content Hugging Priority)**调低,让控件可以根据StackView的尺寸拉伸
修改StackView的分布模式
选中StackView,打开Attributes Inspector:- 若要让控件拉伸填满StackView,将
Distribution设为Fill,同时确保控件的translatesAutoresizingMaskIntoConstraints处于关闭状态(默认嵌入后已关闭) - 若要保留控件原尺寸并均匀分布,选择
Equal Spacing,然后给StackView添加固定宽度约束
- 若要让控件拉伸填满StackView,将
二、解决StackView高度灰化无法编辑的问题
StackView高度灰化是因为它的尺寸被内部控件或外部约束完全推断出来了,解决方法:
- 手动添加固定高度约束
选中StackView,点击右下角「Add New Constraints」按钮,直接设置Height数值并添加约束,强制StackView使用指定高度 - 调整内部控件的垂直布局
若内部控件高度不一致,将StackView的Alignment设为Fill,再添加高度约束,此时StackView会按设置的高度强制布局内部控件
参考截图
原控件初始尺寸:
嵌入StackView后的异常状态:
内容的提问来源于stack exchange,提问作者Christi Palme
相关产品推荐
相关产品推荐

