带位置约束的多行标签

Multilined Label broken with position constraint

在我的应用程序页面中,我想在底栏顶部添加标签文本。

我通过添加以下约束成功了:

BottomBarImage.top = Label.bottom + 24

问题是标签计划显示 2-3 行文本。 我在模拟器上测试过,结果只显示一行。

重要说明:通过取消约束,Label 中的行显示正确(但是 Label 的位置当然是错误的)

我们如何解决多行问题?

谢谢

问题是你的约束不够

一个不在自动布局下的标签就在那里,惰性的;在布局时,它的大小是你在情节提要中给它的大小。

但是只要你给它添加约束,标签就会自动布局。这改变了一切。自动布局下的标签是 self-sizing:它会自动适应其内容的大小。它会自动适应必要的高度,但前提是它的宽度是固定的(这样它就知道什么时候换行)。你没有给这个标签任何 width 约束,也没有给它一个 preferredMaxLayoutWidth,所以自动布局引擎不知道如何做。

因此,要解决此问题,请为您的标签添加宽度限制或给它一个 preferredMaxLayoutWidth。或者,如果您知道两个维度,则同时给它一个宽度约束和一个高度约束。 (并确保 numberOfLines 已更改为 0;默认值为 1,这只是一行。)