UIStackView作为具有中心对齐内容的Flexbox

时间:2019-02-20 19:03:53

标签: ios swift uistackview

我一直试图在水平UIStackView中居中一些按钮 enter image description here

但是不管我做什么,我可以得到的唯一不中断的布局基本上是: enter image description here

由于按钮的数量是可变的,所以我添加了一些约束来以编程方式固定按钮的宽度,但是找不到固定它们之间间距的方法。

这些是堆栈视图设置:

enter image description here

我尝试了所有分发选项!

1 个答案:

答案 0 :(得分:3)

可以通过以下方式实现顶部图像中的布局:

  1. 添加具有默认属性(horizontal轴,fill分布)的堆栈视图。根据需要添加可选的间距。
  2. 将堆栈视图垂直限制为其超级视图。
  3. 将其水平限制在其父视图中,或者根据需要使用 inequality (左> = superview.left,右<= superview)对其进行约束。正确)。
  4. 将堆栈视图在其超级视图中水平居中。
  5. 添加子视图。确保他们知道如何调整大小(基于其自身的内容或具有固定的宽度)。

关键是3和4中对UIStackView的约束。您将其水平固定在其超级视图上,因此它需要弄清楚如何填充所有空间。而是将其水平居中,并仅允许堆栈视图占用所需的空间。