当字体大小大于标签高度时,防止UILabel剪切它的文本
我在我的应用程序中有一种情况,可以给它的字体大小大于它的高度。这与一些相当复杂的架构和布局代码有关。通常情况下,我会增加标签的高度以容纳较大的字体,但这在我的场景中非常难以实现,我宁愿避免它。当字体大小大于标签高度时,防止UILabel剪切它的文本
下一个合乎逻辑的事情是关闭clipsToBounds
,以允许文本子层溢出标签的边界。不幸的是,这种情况似乎没有效果,因为文本仍然被裁剪。
我错过了什么吗?
您应该能够从font.lineHeight
获得字体高度,然后减小字体大小,直到行高小于标签高度。
问题是,文斯,我不想减少我的字体高度。我想让字体变大,这更多的是我想增加标签高度来适应它的情况。正如我在我的问题中所说的,在我的情况下,这很难做到。因此寻找一个基于层裁剪的解决方案。 –
啊,我看到你不想增加标签大小,但没有看到你也不想减小字体大小。另一种可能性可能是将第二个标签集中在现有标签上,以便正确显示文本并调整大小。这样,原始标签就成为屏幕布局中的占位符。 (如上所述) –
看为的UILabel的文档:我认为你需要覆盖的方法textRect(forBounds
https://developer.apple.com/documentation/uikit/uilabel/1620545-textrect
:通过明确增加该方法返回到的含有尺寸矩形limitedToNumberOfLines :)标签的字符串而不是标签的边界。
(此解决方案确实当然需要你的子类)。
希望有所帮助。
这是一个有趣的想法,我会试试看! –
因为我使用AsyncDisplayKit并且标签被封装在具有抽象视图的ASTextNode中,所以令人恼火的是,我没有设备来继承UILabel对象。 –
如何增加标签的内容抗压优先级? –
您可能还需要检查'label.layer.maskToBounds = false'也 – Wez
期望的行为是什么? – Hexfire