左对齐的水平堆栈视图和顶部对齐的垂直堆栈视图

Posted

技术标签:

【中文标题】左对齐的水平堆栈视图和顶部对齐的垂直堆栈视图【英文标题】:Left aligned horizontal stackview and top aligned vertical stackview 【发布时间】:2018-06-29 15:12:50 【问题描述】:

我有两个StackView,一个是水平的,另一个是垂直的。

对于水平 StackView,我希望项目向左对齐并向右增长。

对于垂直 StackView,我希望项目与顶部对齐并向下增长。例如,顶部项目的位置永远不会改变,但如果添加另一个项目,stackview 会向下扩展。

我无法做到这一点,例如使用我的水平 StackView,如果我有两个 40x40 的项目,由于某种原因它们会显示整个屏幕宽度,我已经尝试了一系列不同的分布变化,对齐和约束。

对于我的垂直 StackView,如果我添加两个项目,我的第一个项目将向上移动,第二个项目将在下方,因此中心现在位于两者之间,而不是第一个项目保持不动,第二个项目在其下方。

我无法弄清楚我在这里做错了什么以及如何获取 StackViews,其中第一个项目的大小正确、到位,并且未来的项目跟随它,向右或向下扩展。

【问题讨论】:

【参考方案1】:

您需要的是垂直

1- 将带有 top 、leading 和 trailing 约束的 UIStackView 拖到 superView 上

2- 拖动其中的任何视图并给它一个高度限制

对于水平

1- 将带有 top 、leading 和 height 约束的 UIStackView 拖到 superView 上

2- 拖动其中的任何视图并给它一个宽度限制

注意:将分发设置为fill

【讨论】:

以上是关于左对齐的水平堆栈视图和顶部对齐的垂直堆栈视图的主要内容,如果未能解决你的问题,请参考以下文章

使用不使用硬编码的 CGRect 和最小数量的约束以编程方式将堆栈视图与屏幕顶部对齐

如何在图像视图周围制作圆形边框

水平 StackView 的正确对齐和分布选择

水平堆栈视图内的标签宽度相等?

Swift UIView 从堆栈视图中消失

垂直自动布局两个视图,动态高度对齐顶部