【问题标题】:NSLayoutManager drawGlyphsForGlyphRange:atPoint:NSLayoutManager drawGlyphsForGlyphRange:atPoint:
【发布时间】:2014-02-13 19:47:19
【问题描述】:

NSLayoutManager类中的drawGlyphsForGlyphRange:atPoint:函数是如何实现的?我知道它是由 NSTextView 调用的,然后又调用了 fillBackgroundRectArray:count:forCharacterRange:color:

但它如何确定指定字形的背景颜色(如果有)?

【问题讨论】:

    标签: macros drawing nstextview nslayoutmanager


    【解决方案1】:

    您还有一个要求字形背景的电话。你可以使用

    - (void)drawBackgroundForGlyphRange:(NSRange)glyphsToShow atPoint:(CGPoint)origin;
    

    更新:

    我在 UIView 的 drawRect 中使用它。

     NSRange glyphRange = [layoutManager glyphRangeForTextContainer:textContainer];
                if (glyphRange.location != NSNotFound)
                {
                    [layoutManager drawBackgroundForGlyphRange:glyphRange atPoint:label.frame.origin];                
                    [layoutManager drawGlyphsForGlyphRange:glyphRange atPoint:label.frame.origin];
                }
    

    【讨论】:

    • 我知道,但是这个函数显然永远不会被调用。所有函数都被覆盖并传递给 super。我从未在 iOS 上记录过对此函数的调用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多