在视图中添加多个 UILabel,它们之间的高度恒定

Posted

技术标签:

【中文标题】在视图中添加多个 UILabel,它们之间的高度恒定【英文标题】:Adding multiple UILabels in view with constant height between them 【发布时间】:2015-08-31 12:53:44 【问题描述】:

我正在尝试使用自动布局在 UIView 中添加一些 5-6 UILabel's(仅限单行)。我已经为最顶部和最底部的UILabel 添加了constraints。问题是屏幕尺寸可变。

只是想知道一种更好的方法来添加那些剩余的(3-4)中间UILables(因为我想在所有UILabels之间显示相等的空间)。

方法 1 - 为中间标签添加高度约束并根据屏幕尺寸在运行时更改高度约束常量。

方法 2 - 我尝试添加 >= 和

任何帮助,我怎样才能在所有 UILabel 之间保持恒定的高度。

(可以通过UIScrollViewUITableView 实现,但我不想滚动.. 只使用自动布局:))

【问题讨论】:

【参考方案1】:

您可以在UILabels 之间添加虚拟UIViews,并将这些虚拟视图的高度设置为与其容器成比例。 或者您应该能够通过在运行时设置当前约束常量然后调用setNeedsLayout&layoutIfNeeded

来实现这一点

您无法通过使用“小于”或“大于”约束来实现这一目标。

编辑:您也可以在 ios9.0+ 上使用UILayoutGuide 来完成此操作

【讨论】:

在运行时更改约束对我来说看起来很容易。但是我没有得到“将那些虚拟视图的高度设置为与其容器成比例”的部分。你能解释一下吗?【参考方案2】:

您可以在具有按钮/标签/视图等的左侧窗口中使用堆栈视图......或者您也可以从约束工具中添加它(见附件图片)

【讨论】:

当然。会检查:)【参考方案3】:

如果您正在寻找附加的解决方案,请添加以下约束,如第三张图片所示。

【讨论】:

以上是关于在视图中添加多个 UILabel,它们之间的高度恒定的主要内容,如果未能解决你的问题,请参考以下文章

iOS 约束:如何给 UILabel 高度约束优先级

使用swift在UiStackview中设置UiLabel的高度

多行 UILabel 高度,横向自动布局更高

向其子视图(即 UILabel)添加约束时,无法保持集合视图单元格的固定大小

使用多个 SubView 调整 ScrollView

动态增加 UILabel & TableView Cell 的高度?