iOS - 获取字母的"真实"高度

sha*_*oga 12 uifont ios

我正在尝试在UIView上布局文本.

(黄色区域是具有背景颜色的UILabel的框架).

当我使用sizeWithFont时,我得到了这个,它在字母上方有一个非常大的空间:

p with sizeWithFont

当我使用时font.pointSize我得到这个"我"这是好的 -

p与font.pointSize

但是 当我用它作为"p"时,我得到了精确的高度,但字母在底部绘制并裁剪.

p与font.pointSize

**我怎样才能获得仅在框架中居中的字形?**

谢谢

沙尼

Jef*_*ley 22

UIFont在这种情况下,有很多属性可以帮助:

  • pointSize
  • ascender
  • descender
  • capHeight
  • xHeight
  • lineHeight

  • @Matt,这是一个老人,但我发现https://www.cocoanetics.com/2010/02/understanding-uifont/上的图片非常有帮助. (7认同)
  • 有一张照片会很好,所以很明显它们都被定义为.例如,pointSize == ascender + descender是ascender> = capHeight吗? (3认同)