避免由于其他按钮在单元格中的高度扩展而导致按钮高度扩展
Avoid button height expanding due to other button's height expansion in cell
我有一个自定义的 XIB,其中我有两个按钮,我固定在左右边缘,并为左按钮(名为第一个按钮)的顶部、左侧和底部以及顶部、右侧和底部添加了约束rightButton(名为第二个按钮)
现在,当我仅向 右键(第二个按钮) 添加填充时,我的问题就出现了。
由于左侧有顶部和底部约束并且向右侧添加填充会增加视图的内容大小,因此左侧按钮的大小也会增加
我检查了 "Debug View Hierarchy" 中两个按钮的高度,两者都不一样(左边一个小,右边一个大)
我想要实现的目标:增加rightButton(Second Button)的高度,但保持leftButton(First Button)的高度不变
到目前为止我已经尝试过:
对于左按钮(第一个按钮)
我尝试更改 "Content Hugging Vertical" 优先级,但没有任何区别
将顶部和底部约束的优先级从 1000 降低到 999,以便可能优先考虑高度(在调试视图层次结构中显示的较小)
编辑
前导保证金>=10
失败
试试这个:
左键
- constrain Leading to superview
- 将 CenterY 约束到父视图
- 将顶部和底部限制为
>=
所需值
右键
- 将 Trailing 约束到 superview
- 将 CenterY 约束到父视图
- 将顶部和底部限制为
>=
所需值
编辑
解释你的follow-up问题...
将 leftButton 从 = 10
更改为 >= 10
不满足 auto-layout:
你想要10吗? 11? 20? Auto-layout只看到你想要>= 10
.
如果在按钮之间添加约束:
现在我们告诉 auto-layout:按钮之间保持 60 磅,左按钮至少提前 10 磅。
当右键标题变长时:
Auto-layout "pushes" 左侧按钮向左,它们之间保持 60 磅。
如果我们 运行 没有房间:
Auto-layout 仍然在按钮之间保持 60 点 - 通过向左移动左按钮 - 但至少保持 (>=
) 领先 10 分。
不过,如您所见,这将需要压缩其中一个按钮...因此您需要将一个按钮设置得比另一个按钮高 Content Compression Resistance Priority
,以便 auto-layout 知道哪个按钮一个你想压缩的。
我有一个自定义的 XIB,其中我有两个按钮,我固定在左右边缘,并为左按钮(名为第一个按钮)的顶部、左侧和底部以及顶部、右侧和底部添加了约束rightButton(名为第二个按钮)
现在,当我仅向 右键(第二个按钮) 添加填充时,我的问题就出现了。
由于左侧有顶部和底部约束并且向右侧添加填充会增加视图的内容大小,因此左侧按钮的大小也会增加
我检查了 "Debug View Hierarchy" 中两个按钮的高度,两者都不一样(左边一个小,右边一个大)
我想要实现的目标:增加rightButton(Second Button)的高度,但保持leftButton(First Button)的高度不变
到目前为止我已经尝试过:
对于左按钮(第一个按钮)
我尝试更改 "Content Hugging Vertical" 优先级,但没有任何区别
将顶部和底部约束的优先级从 1000 降低到 999,以便可能优先考虑高度(在调试视图层次结构中显示的较小)
编辑
前导保证金>=10
失败
试试这个:
左键
- constrain Leading to superview
- 将 CenterY 约束到父视图
- 将顶部和底部限制为
>=
所需值
右键
- 将 Trailing 约束到 superview
- 将 CenterY 约束到父视图
- 将顶部和底部限制为
>=
所需值
编辑
解释你的follow-up问题...
将 leftButton 从 = 10
更改为 >= 10
不满足 auto-layout:
你想要10吗? 11? 20? Auto-layout只看到你想要>= 10
.
如果在按钮之间添加约束:
现在我们告诉 auto-layout:按钮之间保持 60 磅,左按钮至少提前 10 磅。
当右键标题变长时:
Auto-layout "pushes" 左侧按钮向左,它们之间保持 60 磅。
如果我们 运行 没有房间:
Auto-layout 仍然在按钮之间保持 60 点 - 通过向左移动左按钮 - 但至少保持 (>=
) 领先 10 分。
不过,如您所见,这将需要压缩其中一个按钮...因此您需要将一个按钮设置得比另一个按钮高 Content Compression Resistance Priority
,以便 auto-layout 知道哪个按钮一个你想压缩的。