0

関数 drawGlyphsForGlyphRange:atPoint: はクラス NSLayoutManager でどのように実装されていますか? 私はそれが 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 に答える