UIStackView具有比例宽度的超级视图

时间:2018-12-31 19:15:22

标签: ios autolayout uikit uistackview ios-autolayout

我需要根据超级视图的宽度来增加水平UIStackView的大小。 UIStackView中的所有按钮都是固定的宽度和高度。我尝试使用stackview.width = superview.width * 0.3设置自动布局约束,但是它弄乱了superview宽度。实现它的正确方法是什么?

3 个答案:

答案 0 :(得分:2)

1-"buttons in UIStackView are fixed width & height"  

矛盾

2- "stackview.width = superview.width * 0.3"

您需要使它们变得灵活

因此要么忽略静态宽度,按钮高度,然后设置

stackView.distriburion = .fillEqually

使它们均匀分布,或者忽略stackView的比例宽度并进行设置

stackView.distriburion = .fill

使其根据尺寸增长

答案 1 :(得分:0)

  

我需要根据超级视图的宽度来增加水平UIStackView的大小。 UIStackView中的所有按钮都是固定的宽度和高度。我尝试使用stackview.width = superview.width * 0.3设置自动布局约束,但它弄乱了Superview宽度

我不知道您的意思是“它弄乱了视图的宽度”。这就是约束乘数的作用。如果正确使用乘法器,将获得所需的结果。

答案 2 :(得分:0)

您必须使用水平拥抱优先级和水平压缩阻力优先级。

通过降低stackView的压缩率和拥抱优先级,您告诉autoLayout调整stackView的大小以适合superView,而不是superView的适合stackView。

希望有帮助