Instance Method

drawsOutsideLineFragment(forGlyphAt:)

Indicates whether the glyph draws outside of its line fragment rectangle.

Declaration

func drawsOutsideLineFragment(forGlyphAt glyphIndex: Int) -> Bool

Parameters

glyphIndex

Index of the glyph.

Return Value

true if the glyph at glyphIndex exceeds the bounds of the line fragment where it’s laid out, false otherwise.

Discussion

Exceeding bounds can happen when text is set at a fixed line height. For example, if the user specifies a fixed line height of 12 points and sets the font size to 24 points, the glyphs will exceed their layout rectangles.

This method causes glyph generation and layout for the line fragment containing the specified glyph, or if noncontiguous layout is not enabled, up to and including that line fragment.

Glyphs that draw outside their line fragment rectangles aren’t considered when calculating enclosing rectangles with the rectArray(forCharacterRange:withinSelectedCharacterRange:in:rectCount:) and rectArray(forGlyphRange:withinSelectedGlyphRange:in:rectCount:) methods. They are, however, considered by boundingRect(forGlyphRange:in:).

See Also

Getting Layout Information

func attachmentSize(forGlyphAt: Int) -> CGSize

For a glyph corresponding to an attachment, returns the size for the attachment cell to occupy.

var extraLineFragmentRect: CGRect

The rectangle defining the extra line fragment for the insertion point at the end of a text (either in an empty text or after a final paragraph separator).

var extraLineFragmentTextContainer: NSTextContainer?

The text container that contains the extra line fragment rectangle.

var extraLineFragmentUsedRect: CGRect

The rectangle enclosing the insertion point drawn in the extra line fragment rectangle.

func firstUnlaidCharacterIndex() -> Int

The index for the first character in the layout manager that has not been laid out.

func firstUnlaidGlyphIndex() -> Int

The index for the first glyph in the layout manager that has not been laid out.

func getFirstUnlaidCharacterIndex(UnsafeMutablePointer<Int>?, glyphIndex: UnsafeMutablePointer<Int>?)

Returns the indexes for the first character and glyph that have invalid layout information.

func lineFragmentRect(forGlyphAt: Int, effectiveRange: NSRangePointer?) -> CGRect

Returns the rectangle for the line fragment in which the given glyph is laid out and (optionally), by reference, the whole range of glyphs that are in that fragment.

func lineFragmentRect(forGlyphAt: Int, effectiveRange: NSRangePointer?, withoutAdditionalLayout: Bool) -> CGRect

Returns the line fragment rectangle containing the glyph at the given glyph index.

func lineFragmentUsedRect(forGlyphAt: Int, effectiveRange: NSRangePointer?) -> CGRect

Returns the usage rectangle for the line fragment in which the given glyph is laid and (optionally) by reference the whole range of glyphs that are in that fragment.

func lineFragmentUsedRect(forGlyphAt: Int, effectiveRange: NSRangePointer?, withoutAdditionalLayout: Bool) -> CGRect

Returns the usage rectangle for the line fragment in which the given glyph is laid and (optionally) by reference the whole range of glyphs that are in that fragment.

func location(forGlyphAt: Int) -> CGPoint

Returns the location for the given glyph within its line fragment.

func notShownAttribute(forGlyphAt: Int) -> Bool

Indicates whether the glyph at the given index is one that isn’t shown.

func truncatedGlyphRange(inLineFragmentForGlyphAt: Int) -> NSRange

Returns the range of truncated glyphs for a line fragment containing the specified index.