相关疑难解决方法(0)

使用NSLayoutManager计算每个字形的帧

在这个帖子中,Core Text计算iOS中的字母框架,他们能够使用Core Text非常精确地计算每个字形的框架.最终的rects完美地拥抱了实际绘制的字形.

使用NSLayoutManager boundingRectForGlyphRange:inTextContainer:似乎不会返回精确的字形边界框:

使用boundingRectForGlyphRange:inTextContainer的字形框架

返回的rects并没有完全包含更复杂的字体(Zapfino示例):

使用boundingRectForGlyphRange:inTextContainer的Zapfino f字形

有没有人知道如何复制上述讨论的结果而不进入iOS 7专用应用程序下的核心文本?

谢谢.

iphone glyph nslayoutmanager ipad ios7

14
推荐指数
1
解决办法
2107
查看次数

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

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

在此输入图像描述

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

这是我的实际方法(在Swift中,灵感来自于这个这个问题):

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)
}
Run Code Online (Sandbox Code Playgroud)

我需要的下降就等于-boundingBox.origin.y.这种方法适用于字母,数字和数字字符(请参阅此答案以获取图形表示).

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

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

string core-text ios swift

7
推荐指数
0
解决办法
1077
查看次数

标签 统计

core-text ×1

glyph ×1

ios ×1

ios7 ×1

ipad ×1

iphone ×1

nslayoutmanager ×1

string ×1

swift ×1