【发布时间】:2015-10-30 22:11:45
【问题描述】:
假设我们有一个UILabel,它从四面八方固定到它的超级视图。 Lines 的数量设置为 0(因此我们可以显示多行字符串),我们使用 Truncate Tails 策略进行换行。
如果我们有一个单行短文本,它不会换行,标签的内部填充/插入看起来很好:
当使用多行文字时,这将强制标签开始换行,省略号出现在标签的末尾,但人工填充/插入被添加到顶部/标签的底部也是如此。标签垂直膨胀,即使它仍然只显示 1 行文本:
约束:
换行:
我已经尝试过了
将水平轴和垂直轴的 Content Hugging Priority 更改为 1000,因此 UILabel 的增长不会超过要求,但这并不能解决问题。
在不同的Line Breaks 策略(剪辑、字符换行、截断等)之间切换也不能解决问题。
我能够在 Xcode 6 和 Xcode 7 beta、Interface Builder 以及运行应用程序时重现此行为。
【问题讨论】:
-
您是否尝试调用 [YourLabel sizeToFit]?
-
@Walucas:是的,我试过了,但没有成功。这个问题出现在 Interface Builder 和正在运行的应用程序中。
-
您是否尝试在代码中设置
preferredMaxLayoutWidth?您可以将其设置为适合您的边距的self.frame.size.width - 2*8。 -
@CandostDagdeviren 谢谢,但也没有运气
-
您是否更改了视图框架?因为你的底部空间限制应该大于 20,它会阻止你的 UILabel 在垂直方向上变大。
标签: ios autolayout interface-builder uilabel