Autolayout防止3行标签有两行以上

时间:2014-02-26 15:46:29

标签: ios objective-c ios7 uilabel autolayout

我在IB中布置UICollectionViewCell,而我添加的UILabels中的一个不符合我对autolayout的预期。所需的行为是:标签的宽度最多为385px;标签的右边缘距离容器边缘至少30px;标签占用尽可能多的垂直空间以容纳三行文本。

我设置了工作约束来处理宽度(和填充)。问题在于计算出的标签框架高度。在IB中,我将标签布局为385x80(最大宽度,足够高度以容纳三行文本)。 FWIW,我在IB的标签中有三行文字。

一旦应用程序实际加载,标签永远不会显示超过两行文本。它正确地标记了一行或两行的标签,但只有三行。

我尝试了各种额外的限制来试图强迫它更高,并且还优先考虑并尝试使用我的约束来更好地处理内在高度,但没有任何效果。

通过阅读各种内容,我怀疑这可以通过以编程方式设置约束来处理,但是在这一点上我不确定我将如何以不同的方式做我在IB中设置的内容。

编辑:其他一些可能相关的事情。我有另一个行为几乎相同的标签,并且没有问题超过两行(虽然有时会截断六行,应该是七行)。两者之间的唯一区别是字体大小。在某些情况下,显示的标签将是一行截断,而不是两行,而下一个单元格有两行。我也想不出来。最后,对于有问题的标签,它将具有自定义(非本机)字体。我怀疑自动布局可能正在调整原生系统字体(更小)的标签大小,但即使拿掉自定义字体,我仍然会看到这种不正确的行为。

0 个答案:

没有答案
相关问题