【发布时间】:2021-05-04 01:55:50
【问题描述】:
我正在尝试手动调整 UITextView 的大小,使其完全适合某些文本。 (我知道这可以通过自动布局和禁用滚动来完成,但由于其他原因,这在这里不起作用。)我正确地考虑了 textContainerInset 和 layoutMargins 但计算行高不起作用。
上面的图片显示了一个 120pt 的字体,据说行高是 120pt,但显然实际的行高是 145pts。问题是,我如何计算这个数字?
FWIW 我检查了,在该文本视图上设置的 NSParagraphStyle 对象没有什么有趣的,即lineHeightMultiple、lineSpacing、paragraphSpacing 都默认为 0.0。它是在情节提要中创建的,其布局属性均未在代码中更改。
编辑:我应该提到,大多数字体不会发生这种情况。我目前正在查看的字体称为 Sahar。
【问题讨论】:
-
我确实发现了一些类似的问题(例如stackoverflow.com/questions/32764158/uitextview-line-height),但没有一个能准确解决这个问题。
-
"... 120pt 字体应该是 120pt 行高 ..." -- 我认为那句话中的关键词是“应该”。这个答案可能会给你一些见解:stackoverflow.com/a/33278748/6257435
-
有趣的@DonMag。不幸的是,虽然 UIFont.lineHeight 值明显小于 UITV 使用的值,但这个计算出来的版本(pointSize + assender + descender)显然 大于 比 UITV 使用的值。