垂直分布两个水平按钮行

时间:2019-05-14 18:33:46

标签: ios xcode autolayout interface-builder uistackview

我正在尝试在IB XCode 10.2.1中垂直垂直分布两行水平按钮。当前的努力产生了以下结果: [Storyboard for button rows [][1][1] 可以在垂直堆栈中以间距值分布两行,但是我希望它根据可用的垂直空间动态地垂直分布。

详细信息: 这两个UIStackViews嵌入在垂直UIStackView中。为了使其正常工作,我还将垂直UIStackView嵌入到UIView中,并将其调整为此屏幕快照底部的可用空间(称为“ UIStackView” ,则可以看到它是“相册标题”和底部之间的较大矩形)。垂直UIStackView中的“分布”选项均不会对分布两个水平行产生任何影响。

我缺少约束吗?我的最后一招是根据屏幕尺寸以编程方式调整垂直堆栈中的间距。

此外,以下未列出:垂直UIStackView的顶部未固定到UIView的顶部-执行此操作时,我在顶部获得一行,而在另一行在底部,当我使用“等距”时。在这种情况下,但选择“均等填充”时,两行在底部附近彼此非常接近,并且“专辑标题”被拉低至与之相符的位置(最好的方法是将“专辑标题”保持在原位置,顺便说一句?)。也许答案确实在于这种情况,但是有不同的约束条件……

这是结构和约束(顶部和底部具有相同的约束): enter image description here enter image description here

,这里是包围UIView(“堆栈视图”)的约束: enter image description here

提前谢谢!很多!

1 个答案:

答案 0 :(得分:1)

完成这些操作的方式...最简单的方法就是使用“间隔视图”。

以下是带有查看为:iPhone 8

的布局

enter image description here

使用这种布局,我在垂直堆栈视图中包含3个红色的“间距视图”。它们彼此设置为相等的高度,最终使您具有相等的垂直“间距”。显然,您将背景颜色更改为清除,以便看不到它们。

注意:

我给每个按钮的宽度和高度限制分别为44

水平堆栈视图使用:

  • 对齐方式:填充
  • 分布:等距
  • 间距:0

垂直堆栈视图在视图的前导/尾随/底部被限制了20点,顶部从标签底部开始被限制了20点...,其中:

  • 对齐方式:填充
  • 分布:填充
  • 间距:0

这是与完全相同的布局,查看为:iPhone 4s ,因此您可以看到它可以根据需要自行调整大小,而无需进行任何更改:

enter image description here