我的应用程序中存在一种情况,即标签的字体大小可能高于其高度 . 这与一些相当复杂的架构和布局代码有关 . 通常我会增加标签的高度来容纳更大的字体,但这在我的场景中非常难以做到,我宁愿避免它 .
下一个合乎逻辑的事情是关闭 clipsToBounds ,以允许文本子层溢出标签的边界 . 不幸的是,在这种情况下,这似乎没有效果,因为文本仍然被剪裁 .
clipsToBounds
我错过了什么吗?
您应该能够从 font.lineHeight 获取字体高度,然后减小字体大小,直到行高度小于标签高度 .
font.lineHeight
查看UILabel的文档:
https://developer.apple.com/documentation/uikit/uilabel/1620545-textrect
我认为您需要通过显式地将此方法返回的矩形增加到标签字符串的包含大小而不是标签的边界来覆盖方法textRect(forBounds:limitedToNumberOfLines :) .
(这个解决方案当然要求你进行子类化 . )
希望有所帮助 .
2 回答
您应该能够从
font.lineHeight
获取字体高度,然后减小字体大小,直到行高度小于标签高度 .查看UILabel的文档:
https://developer.apple.com/documentation/uikit/uilabel/1620545-textrect
我认为您需要通过显式地将此方法返回的矩形增加到标签字符串的包含大小而不是标签的边界来覆盖方法textRect(forBounds:limitedToNumberOfLines :) .
(这个解决方案当然要求你进行子类化 . )
希望有所帮助 .