在堆栈视图中设置某些项之间的空间

Nah*_*uto 36 xcode ios

在Interface Builder中,我使用水平UIStackView并希望将项目放置为:

   xx   xx   xx
Run Code Online (Sandbox Code Playgroud)

每个x代表一个项目.Item1和item2应该相互粘贴,但item2和item3应该是间隔的,依此类推.这意味着我不希望所有项目之间保持恒定的间距.

我怎么能这样做?
(可能相当于工具栏的灵活空间)

谢谢 !

Q L*_*Liu 52

这是基于Lumialxk回复的答案.选择要处理的堆栈视图,并将间距属性更改为所需的值.

属性面板的屏幕截图


Aja*_*mar 29

在水平堆栈视图内部还有三个水平堆栈视图,以便您可以控制每个项目的间距和分布.见下面的截图:

在此输入图像描述


War*_*shi 26

仅限iOS 11

stackView.setCustomSpacing(32.0, after: headerLabel)
Run Code Online (Sandbox Code Playgroud)

有关详细信息:堆栈视图自定义间距

  • 我目前不在这个项目上,但这个解决方案很有意思! (2认同)

Tun*_*Fam 7

以编程方式为每个视图

stackView.spacing = 10.0
Run Code Online (Sandbox Code Playgroud)

如果要在每个视图后都设置自定义间距,并且需要支持低于iOS11的支持

创建一个具有高度的透明UIView并将其作为添加addArrangedSubview到stackView中。


Fox*_*150 7

Swift 4:例如,如果您想在第一个子视图之后设置一个空格:

stackView.setCustomSpacing(30.0, after: stackView.subviews[0])
Run Code Online (Sandbox Code Playgroud)


Lum*_*lxk 5

在stack view中,你只能定义items之间的恒定空间,做这样的事情很容易,只需要在outline中选择stack view,设置space的值即可。