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