lineFragmentRect(forGlyphAt:effectiveRange:)
Returns the rectangle for the line fragment where the glyph lies and (optionally), by reference, the entire range of glyphs in that fragment.
Declaration
func lineFragmentRect(forGlyphAt glyphIndex: Int, effectiveRange effectiveGlyphRange: NSRangePointer?) -> NSRectParameters
- glyphIndex:
The glyph for which to return the line fragment rectangle.
- effectiveGlyphRange:
If not
NULL, on output, the range for all glyphs in the line fragment.
Return Value
The line fragment in which the given glyph is laid out.
Discussion
This method causes glyph generation and layout for the line fragment containing the specified glyph, or if noncontiguous layout is not enabled, for all of the text up to and including that line fragment.
Line fragment rectangles are always in container coordinates.
Overriding this method is not recommended. If the line fragment rectangle needs to be modified, that should be done at the typesetter level or by calling setLineFragmentRect(_:forGlyphRange:usedRect:).
See Also
Getting layout information
attachmentSize(forGlyphAt:)drawsOutsideLineFragment(forGlyphAt:)extraLineFragmentRectextraLineFragmentTextContainerextraLineFragmentUsedRectfirstUnlaidCharacterIndex()firstUnlaidGlyphIndex()getFirstUnlaidCharacterIndex(_:glyphIndex:)lineFragmentRect(forGlyphAt:effectiveRange:withoutAdditionalLayout:)lineFragmentUsedRect(forGlyphAt:effectiveRange:)lineFragmentUsedRect(forGlyphAt:effectiveRange:withoutAdditionalLayout:)location(forGlyphAt:)notShownAttribute(forGlyphAt:)truncatedGlyphRange(inLineFragmentForGlyphAt:)