如何计算NSLayoutManager中的字形数

时间:2016-01-28 13:44:36

标签: ios swift glyph nslayoutmanager

如何获取NSLayoutManager中的字形总数?

我正在制作一个光标图层以覆盖自定义文本视图,如下所示:

func moveCursorToGlyphIndex(glyphIndex: Int) {

    // get bounding rect for glyph
    var rect = self.layoutManager.boundingRectForGlyphRange(NSRange(location: glyphIndex, length: 1), inTextContainer: view.textContainer)
    rect.origin.y = self.textContainerInset.top
    rect.size.width = cursorWidth

    // set cursor layer frame to right edge of rect
    cursorLayer.frame = rect
}

但是,我想确保glyphIndex不受限制。像这样:

if glyphIndex < self.layoutManager.glyphCount { // doesn't work
    // ...
}
但是,我无法通过反复试验找到合适的房产,并且在线搜索没有显示任何答案。

我终于确实在文档中找到它(现在看来很明显),但由于花了很长时间,我决定在这里添加Q&amp; A.

1 个答案:

答案 0 :(得分:1)

使用numberOfGlyphs属性,如

layoutManager.numberOfGlyphs

“文本布局编程指南”文档here中对此进行了演示。