获取除字母或数字之外的字符CGGlyphs的边界矩形

时间:2014-11-20 20:20:57

标签: ios swift string core-text

我正在寻找一种方法来获得角色的字形下降,如图所示:

enter image description here

方法需要适用于任何给定字符(或至少所有常见的unicode字符)。

以下是我的实际方法(在Swift中,灵感来自thisthis问题):

let char = "a"
let ctFont = CTFontCreateWithNameAndOptions("HelveticaNeue", 12, nil, nil)
var ctGlyph = CTFontGetGlyphWithName(ctFont, char)
let boundingBox = withUnsafePointer(&ctGlyph) { pointer -> CGRect in
    return CTFontGetBoundingRectsForGlyphs(ctFont, CTFontOrientation.OrientationDefault, pointer, nil, 1)
}

我需要的下降就等于-boundingBox.origin.y。 这种方法适用于字母,数字和数字字符(有关图形表示,请参阅this answer)。

问题是,对于除字母或数字之外的所有内容(例如:.,#')*),我得到相同的边界矩形:{x:0.612, y:0.012, w:4.908, h:8.532}。这显然是不正确的。

如何直接为所有字符获取下降的粘合矩形?

0 个答案:

没有答案