似乎字体大小并不能确定任何内容。
这是两行,一行使用字体zapfino
,另一行使用system font
。它们的大小都是30,但行高或其他字体指标确实不同。
此图片使用YYLabel进行绘制,使用coretext
布局并绘制文本,使用此框架我们可以轻松查看一个字形的边框。
下面是另一张使用两个UILabel
不同字体并在StroyBoard
中预览的图片。
那么当布局一行时,coretext
中的字体大小是什么意思?
答案 0 :(得分:1)
从the Wiki page到点(排版):
当指定字体的磅值时,缩放字体以使其em方格具有该点的特定长度的边长。虽然字体的字母通常适合字体的正方形,但两者之间不一定有任何大小关系,因此点大小不一定对应于字母大小的任何测量[。]
所以在所有数字字体中,字体大小并没有真正与任何东西相关联,除了字体设计师选择在其上设计字形的假想方格。所以有时这会与大写字母M的宽度相关,但并非总是如此。而 Zapfino ,你提到的字体,是完全超越其边界框的更大胆的例子之一。这里是Helvetica的旁边,大小相同:
尽管它们具有相似的X高度,但Zapfino的帽高,上升和下降是如此之大,以至于大多数渲染引擎(包括CoreText)中每个字母的单元高度将是Helvetica的两倍多。它只是字体的设计方式。您需要根据您使用的字体手动调整字体大小,或尝试使用this one等编程方法。
祝你好运!