UILabel在垂直生长和断线时添加了不必要的顶部和底部填充

Jur*_*nka 8 interface-builder uilabel ios autolayout

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

如果我们有一个单行的短文本行,它不会破坏行,那么标签内部的padding/inset看起来很好:

单行文字

当使用多行文本时,将强制标签开始折断线,省略号出现在标签的末尾,但人工填充/插入也添加到标签的顶部/底部.标签垂直膨胀,即使它仍然只显示一行文字:

多行文字

约束:

约束

换行符:

换行

我已经尝试过了什么

改变Content Hugging Priority1000用于水平和垂直轴,这样的UILabel不会增长超过需要的,但这并不解决问题.

在不同的Line Breaks策略(剪辑,字符包裹,截断,......)之间切换也不能解决问题.

我能够重现这两种行为Xcode 6Xcode 7 beta,Interface Builder中,当运行应用程序.

Jur*_*nka 3

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