如何使用 UIStackview 实现这个视图?

Posted

技术标签:

【中文标题】如何使用 UIStackview 实现这个视图?【英文标题】:How to achieve this view using UIStackview? 【发布时间】:2016-12-07 16:44:33 【问题描述】:

我想使用UIStackview 来制作下面的用户界面。我在使用UIStackViews 时面临的问题是给不均匀的空间。

【问题讨论】:

这看起来不太适合 stackview 布局。 @TheValyreanGroup 我们不能使用 stackview 做到这一点? 并非如此。还有更好的方法 【参考方案1】:

几乎所有事情都可以通过stackview 以一种可行的方式实现。如果您想要不均匀的大小或空间 - 可以将分布 fill-proportional 或对齐设置为 center 并应用单一约束 - 空间、高度或宽度。

重点是使用stackview,我们做的事情约束最少。

下面的 UI 有 11 个约束,其中 4 个用于堆栈视图的位置和大小。

我的结果是: 对于大多数设计,在使用stackview 时,我们不需要对内部元素应用约束。但是对于这样的情况,我们仍然可以使用stackview 并通过使用非常少的约束来获得好处。在使用stackview 时,我们仍然拥有自动布局的所有功能。

【讨论】:

感谢您的回答,但我较早实现了。您首先发布了可接受的内容,因此您的信用增加了。 谢谢桑迪。自动布局和堆栈视图之间的选择很容易成为堆栈视图的时候到了。 Stackview 与 ios 8 不兼容,但现在不是问题了,几乎所有设备都升级到了 iOS 8 以上。【参考方案2】:

您没有将元素彼此固定以及它们的父视图是有原因的吗?在这种情况下,UIStackView 不会是我的首选。

【讨论】:

这意味着我们可以只为特定的 UI 使用 stackview? 我会说具体的布局,而不是具体的 UI。

以上是关于如何使用 UIStackview 实现这个视图?的主要内容,如果未能解决你的问题,请参考以下文章

UIStackView 孩子等间距(周围和之间)

UIStackView 对齐问题

如何在 Xcode 中调整 UIStackView 的子视图大小?

如何用你的不同尺寸的子视图制作 UIStackView?

UIStackView使用介绍

UIstackview如何确保两个子视图具有不同的比例大小