我最近一直在切换到UIStackView
并尝试使用它进行所有布局,这比使用自动布局更容易......但有一个例外。
我有一个使用嵌套UIStackViews
的布局和一个垂直堆栈视图,里面是一个水平堆栈视图。
喜欢这个......
| Label |
| Label |
|Button Button|
| Label |
这很好,但我现在想在按钮和屏幕边缘之间留一个空格。我可以在按钮之间设置空格,但不能在边缘设置空格。
有办法做到这一点吗?
我想要的是......
| B B |
按钮都有背景颜色和圆角。我想在屏幕边缘和背景之间留一个间隙。
如果这是有道理的。
我找不到任何可以让我这样做的东西。
答案 0 :(得分:0)
我意识到这是一个非常老的问题,但是您可以这样做:
clearColor
Distribution
设置为Equal Spacing
。[更新:我刚刚看到您在评论中提到了此内容]
答案 1 :(得分:0)
从 iOS 14 / Xcode 12 开始,StackView 没有 padding 属性。但我们可以设置布局边距。
stackView.isLayoutMarginsRelativeArrangement = true
对于 iOS > 10
stackView.directionalLayoutMargins = NSDirectionalEdgeInsets(top: 16, leading: 16, bottom: 16, trailing: 16)
对于 iOS <= 10
stackView.layoutMargins = UIEdgeInsets(top: 16, left: 16, bottom: 16, right: 16)
P.S 这种方法的缺点是,当 StackView 没有子视图时,它会保留其布局边距。因此,要移除内边距,我们应该通过代码设置一个边距为零的布局边距。