iOS中字体Glyph Ascender和Descender之间的关系是什么?

iOS中字体Glyph Ascender和Descender之间的关系是什么?,第1张

概述我正在使用UILabel(iOS7)中的字体,并且遇到了一些我希望有人可以解释的东西: 字体’Glyph,Ascender和Descender之间关系是什么? 从我读过的文件中,Ascender是基线上方字体的一部分,Descender是下面的部分(返回为负数).组合的绝对值应该是字体的最大高度. 例如,Ascender为255,Descender为-64,总高度为319. 但是,字形高度返回为 我正在使用UILabel(iOS7)中的字体,并且遇到了一些我希望有人可以解释的东西:
字体’Glyph,Ascender和Descender之间的关系是什么?

从我读过的文件中,Ascender是基线上方字体的一部分,Descender是下面的部分(返回为负数).组合的绝对值应该是字体的最大高度.

例如,Ascender为255,Descender为-64,总高度为319.
但是,字形高度返回为228.4

编辑:这是字形代码:

CTFontRef ctFont = CTFontCreateWithname((__brIDge CFStringRef)(uiFont.Fontname),uiFont.pointSize,NulL);UniChar ch = [msgLabel.text characteratIndex:0];CGGlyph glyph;if (CTFontGetGlyphsForCharacters (ctFont,&ch,&glyph,1)) {    CGRect bounds = CTFontGetBoundingRectsForGlyphs (ctFont,kCTFontOrIEntationDefault,nil,1);    float glyphHeight = bounds.size.height;}

这是Ascender / Descender代码:

float adHeight = myLabel.Font.ascender-myLabel.Font.descender; //Descender is always a negative value

那么为什么从CTFontGetBoundingRectsForGlyphs返回的Glyph高度不等于Ascender加Descender?

解决方法 字体中的每个字形(字母形状)都是不同的大小和形状,对吗?字符“A”的字形高于字符“a”的字形,“t”字形的顶部再次不同.

Font.ascender是所有字母形状(字形)的最大值,Font.descender是最小值.

任何特定的字体都可以轻松拥有一个额外的高字形,这意味着Font.ascender值与不包含该字符的字符串的尺寸无关.

总结

以上是内存溢出为你收集整理的iOS中字体Glyph Ascender和Descender之间的关系是什么?全部内容,希望文章能够帮你解决iOS中字体Glyph Ascender和Descender之间的关系是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1023189.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存