字体’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之间的关系是什么?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)