在我的应用程序页面中,我想在底栏上添加一个Label文本。
通过添加以下约束我成功了:
BottomBarImage.top = Label.bottom + 24
问题是标签计划显示2-3行文字。 我在模拟器上进行了测试,结果只显示了一行。
重要提示:通过删除约束,Label中的行显示正确(但标签的位置当然是错误的)
我们如何解决多线问题?
由于
答案 0 :(得分:1)
问题是您的约束不足。
不在汽车布局下的标签就在那里,惰性;在布局时,它的大小是你在故事板中给出的大小。
但是只要为其添加约束,标签就会自动布局。这改变了一切。自动布局下的标签是自行调整大小:它会自动适应其内容的大小。它会自动适应所需的高度,但前提是它的宽度是固定的(这样它才能知道何时换行)。您没有为此标签指定任何 width 约束,也没有给它preferredMaxLayoutWidth
,因此自动布局引擎不知道如何执行此操作。
因此,要解决此问题,请为标签添加宽度约束或为其指定preferredMaxLayoutWidth
。或者,如果您知道这两个维度,请同时为其指定宽度约束和高度约束。 (并确保numberOfLines
已更改为0
;默认值为1
,这只是一行。)