字体大小在ios中的意义何在?

似乎字体大小不确定任何东西.

这是两行,一个使用字体zapfino,另一个使用系统字体.它们的大小都是30,但行高或其他字体指标确实不同.
《字体大小在ios中的意义何在?》

这张图是用YYLabel绘制的,它使用coretext布局并绘制文本,使用这个框架我们可以很容易地看到一个字形的边框.

下面是另一张使用两个不同字体的UILabel并在StroyBoard中预览的图片.
《字体大小在ios中的意义何在?》

那么当布局一行时,字体大小在coretext中意味着什么?

最佳答案 从
the Wiki page点开始(排版):

When a point size of a font is specified, the font is scaled so that its em square has a side length of that particular length in points. Although the letters of a font usually fit within the font’s em square, there is not necessarily any size relationship between the two, so the point size does not necessarily correspond to any measurement of the size of the letters[.]

所以在所有数字字体中,字体大小并没有真正与任何东西相关联,除了字体设计师选择在其上设计字形的假想方格.所以有时这会与大写字母M的宽度相关,但并非总是如此.而你提到的字体Zapfino是完全超越其边界框的更大胆的例子之一.这里是Helvetica的旁边,大小相同:

《字体大小在ios中的意义何在?》

虽然它们具有相似的X高度,但Zapfino的帽高,上升和下降是如此之大,以至于大多数渲染引擎(包括CoreText)中每个字母的单元高度将是Helvetica的两倍多.它只是字体的设计方式.你需要根据你使用的字体手动调整你的字体大小,或者尝试像this one这样的程序化方法.

祝好运!

点赞