多线标签因位置约束而被打破

时间:2018-06-09 15:03:03

标签: ios storyboard

在我的应用程序页面中,我想在底栏上添加一个Label文本。

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

BottomBarImage.top = Label.bottom + 24

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

重要提示:通过删除约束,Label中的行显示正确(但标签的位置当然是错误的)

我们如何解决多线问题?

由于

1 个答案:

答案 0 :(得分:1)

问题是您的约束不足。

不在汽车布局下的标签就在那里,惰性;在布局时,它的大小是你在故事板中给出的大小。

但是只要为其添加约束,标签就会自动布局。这改变了一切。自动布局下的标签是自行调整大小:它会自动适应其内容的大小。它会自动适应所需的高度,但前提是它的宽度是固定的(这样它才能知道何时换行)。您没有为此标签指定任何 width 约束,也没有给它preferredMaxLayoutWidth,因此自动布局引擎不知道如何执行此操作。

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