UILabel在垂直增长和断开线

时间:2015-08-07 12:51:15

标签: ios autolayout interface-builder uilabel

我们假设我们有一个UILabel,它从各方面都固定在其超级视图上。 Lines的数量设置为0(因此我们可以显示多行字符串),我们使用Truncate Tails策略进行换行。

如果我们有单一,短行文字,这不会破坏行,那么padding / inset中的标签看起来很好:

Single line of text

使用多行文字时,会强制标签开始分割行,标注末尾会显示省略号,但人工填充/插入会添加到顶部/标签的底部。标签垂直膨胀,即使它仍然只显示一行文字:

Multiline text

约束:

Constraints

换行符:

Line breaks

我已经尝试了

水平和垂直轴都将Content Hugging Priority更改为1000,因此UILabel的增长不会超过要求,但这并不能解决问题。

在不同的Line Breaks策略(Clip,Character Wrap,Truncate,...)之间切换也无法解决问题。

我可以在Xcode 6Xcode 7 beta,Interface Builder以及运行应用时重现此行为。

3 个答案:

答案 0 :(得分:1)

看起来修复无意填充的唯一方法是将Lines设置为常量(例如3)。 UILabel仍将动态增长,并且不会添加任何填充。

答案 1 :(得分:0)

在界面构建器中看到它时遇到了同样的问题。但是,如果我只是运行它,模拟器的最终结果工作没有任何填充。 关键是你必须设置标签的backgroundColor属性。

答案 2 :(得分:0)

在界面构建器中取消选中标签所需宽度的“显式”复选框为我解决了这个问题。