2017-10-18 216 views
1

我在我的应用程序中有一种情况,可以给它的字体大小大于它的高度。这与一些相当复杂的架构和布局代码有关。通常情况下,我会增加标签的高度以容纳较大的字体,但这在我的场景中非常难以实现,我宁愿避免它。当字体大小大于标签高度时,防止UILabel剪切它的文本

下一个合乎逻辑的事情是关闭clipsToBounds,以允许文本子层溢出标签的边界。不幸的是,这种情况似乎没有效果,因为文本仍然被裁剪。

我错过了什么吗?

+0

如何增加标签的内容抗压优先级? –

+0

您可能还需要检查'label.layer.maskToBounds = false'也 – Wez

+0

期望的行为是什么? – Hexfire

回答

0

您应该能够从font.lineHeight获得字体高度,然后减小字体大小,直到行高小于标签高度。

+0

问题是,文斯,我不想减少我的字体高度。我想让字体变大,这更多的是我想增加标签高度来适应它的情况。正如我在我的问题中所说的,在我的情况下,这很难做到。因此寻找一个基于层裁剪的解决方案。 –

+0

啊,我看到你不想增加标签大小,但没有看到你也不想减小字体大小。另一种可能性可能是将第二个标签集中在现有标签上,以便正确显示文本并调整大小。这样,原始标签就成为屏幕布局中的占位符。 (如上所述) –

0

看为的UILabel的文档:我认为你需要覆盖的方法textRect(forBounds

https://developer.apple.com/documentation/uikit/uilabel/1620545-textrect

:通过明确增加该方法返回到的含有尺寸矩形limitedToNumberOfLines :)标签的字符串而不是标签的边界。

(此解决方案确实当然需要你的子类)。

希望有所帮助。

+0

这是一个有趣的想法,我会试试看! –

+0

因为我使用AsyncDisplayKit并且标签被封装在具有抽象视图的ASTextNode中,所以令人恼火的是,我没有设备来继承UILabel对象。 –

相关问题