UIStackView 嵌入在 UIStackView 对齐中

Posted

技术标签:

【中文标题】UIStackView 嵌入在 UIStackView 对齐中【英文标题】:UIStackView embedded within UIStackView alignment 【发布时间】:2017-01-23 03:59:38 【问题描述】:

我正在尝试使用嵌入式 UIStackViews 来获得如下所示的内容:

Label1 ---------<spacing>-------Label2
Label3 -<can take up this whole area>-

所以我在一个水平 UIStackView 中有 label1 和 label2。然后innerStackView 与Label3 垂直堆叠。但我想让 Label1 一直左对齐到左边,然后 label2 一直到右边。我可以添加间距,但似乎应该有更好的方法来做到这一点。

我之所以尝试这样做是因为有时 label2 和 label3 没有填充,我读到 UIStackViews 可以在其中一个项目被隐藏并且我想尝试学习一些东西时非常容易地处理该布局与使用标签和自动布局不同。

【问题讨论】:

【参考方案1】:

stackview 对齐和分布属性以相同的方式影响所有排列的子视图,即不能一左一右。但是,您可以将水平堆栈视图设置为平均填充,并将 label1 文本对齐设置为左对齐,并将 label2 文本对齐设置为右,它会达到相同的效果。

【讨论】:

【参考方案2】:

你有这个: label1 和 label2 堆叠在一个水平的 stackView 中,我们将其命名为 S1。然后,您将 S1 与 label3 一起堆叠成一个垂直堆栈,我们将使用 S2 引用该堆栈。好吗??

我的建议: 尝试将 label1 堆叠到垂直 stackView(对齐前导)S3,并将 label2 堆叠到另一个垂直 stackView(对齐尾随)S4。然后将这两个堆栈视图 S3 y S4 堆叠在 S1 内。我认为这应该可以正常工作。

【讨论】:

以上是关于UIStackView 嵌入在 UIStackView 对齐中的主要内容,如果未能解决你的问题,请参考以下文章

Swift:扩展 UIStackView 以创建居中的标签列表

UIStackView 嵌入在 UIStackView 对齐中

在 UIScrollView 中嵌入 UIStackView 时出现的问题

嵌入在 UIStackView 中的 UITableView 不会重新加载数据

以编程方式获取嵌入在 UIStackView 中的自定义 UIView

UIStackView 和多行标签?