指定stackview的arrangedSubviews之间的不同间距

Posted

技术标签:

【中文标题】指定stackview的arrangedSubviews之间的不同间距【英文标题】:Specify different spacing between arrangedSubviews of stackview 【发布时间】:2020-07-16 07:27:25 【问题描述】:

我的登录视图是用 stackview 设计的。 stackview 有五个视图(分段控件、两个文本字段和两个按钮)

我将对齐设置为填充,分布设置为按比例填充。但是,我无法更改子视图之间的间距。

现在间距是 10,但我希望分段控件和第一个 textField 之间的间距为 20,“登录”按钮和“忘记密码?”之间的间距为 5。按钮。

我知道我可以删除堆栈视图并使用自动布局来实现我想要的定位,但我想使用堆栈视图来控制旋转期间的视图。

谁能帮帮我。

【问题讨论】:

你不能。这不是在 stackView 内的视图之间提供不同间距的选项。您也可以移动 segmentControl 和“忘记密码?” stackView 中的按钮。 @Natasha 你可能不得不用你自己的逻辑从你身边进行管理。我将为您提供一种获取 UIView 的方法,并在 UIView 中添加您需要使用的其他控件。并设置 ui 视图背景颜色清晰。 【参考方案1】:

UIStackView 有一个在指定视图之后应用自定义间距的实例方法。

func setCustomSpacing(_ spacing: CGFloat, 
                after arrangedSubview: UIView)

stackView.setCustomSpacing(20, after: segmenteControl)

【讨论】:

【参考方案2】:

您可以做的是在 stackView 中添加缓冲视图以在两个视图之间获得更多空间......清除该缓冲视图背景颜色并根据您的设置固定其高度。需求

【讨论】:

以上是关于指定stackview的arrangedSubviews之间的不同间距的主要内容,如果未能解决你的问题,请参考以下文章

stackView 中的 StackView 不能通过 swift 使用它的间距

Stackview inside 其他stackview宽度问题

iOS:更改 StackView 中 TextField 的高度(在 StackView 内)

如何在 StackView 中展开 UITableView?

为啥我的 StackView 不工作?元素完全移位

Stackview 安排问题