0

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

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

4

1 回答 1

0

你有另一个要求字形背景。您可以使用

- (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];
            }
于 2014-02-27T09:46:19.240 回答