---
title: "drawUnderline(forGlyphRange:underlineType:baselineOffset:lineFragmentRect:lineFragmentGlyphRange:containerOrigin:)"
framework: uikit
role: symbol
role_heading: Instance Method
path: "uikit/nslayoutmanager/drawunderline(forglyphrange:underlinetype:baselineoffset:linefragmentrect:linefragmentglyphrange:containerorigin:)"
---

# drawUnderline(forGlyphRange:underlineType:baselineOffset:lineFragmentRect:lineFragmentGlyphRange:containerOrigin:)

Draws underlining for the glyphs in a specified range.

## Declaration

```swift
func drawUnderline(forGlyphRange glyphRange: NSRange, underlineType underlineVal: NSUnderlineStyle, baselineOffset: CGFloat, lineFragmentRect lineRect: CGRect, lineFragmentGlyphRange lineGlyphRange: NSRange, containerOrigin: CGPoint)
```

## Parameters

- `glyphRange`: A range of glyphs, which must belong to a single line fragment rectangle (as returned by doc://com.apple.uikit/documentation/UIKit/NSLayoutManager/lineFragmentRect(forGlyphAt:effectiveRange:)).
- `underlineVal`: The style of underlining to draw. This value is a mask derived from the value for doc://com.apple.uikit/documentation/UIKit/NSUnderlineStyleAttributeName—for example, (NSUnderlinePatternDash | NSUnderlineStyleThick). Subclasses can define custom underlining styles.
- `baselineOffset`: Specifies the distance from the bottom of the bounding box of the specified glyphs in the specified range to their baseline.
- `lineRect`: The line fragment rectangle containing the glyphs to draw underlining for.
- `lineGlyphRange`: The range of all glyphs within lineRect.
- `containerOrigin`: The origin of the lineRectNSTextContainer in its NSTextView.

## Discussion

Discussion This method is invoked automatically by underlineGlyphRange(_:underlineType:lineFragmentRect:lineFragmentGlyphRange:containerOrigin:); you should rarely need to invoke it directly. This method’s underlineVal parameter does not take account of any setting for NSUnderlineByWordMask because that’s taken care of by underlineGlyphRange(_:underlineType:lineFragmentRect:lineFragmentGlyphRange:containerOrigin:).

## See Also

### Drawing

- [drawBackground(forGlyphRange:at:)](uikit/nslayoutmanager/drawbackground(forglyphrange:at:).md)
- [drawGlyphs(forGlyphRange:at:)](uikit/nslayoutmanager/drawglyphs(forglyphrange:at:).md)
- [drawStrikethrough(forGlyphRange:strikethroughType:baselineOffset:lineFragmentRect:lineFragmentGlyphRange:containerOrigin:)](uikit/nslayoutmanager/drawstrikethrough(forglyphrange:strikethroughtype:baselineoffset:linefragmentrect:linefragmentglyphrange:containerorigin:).md)
- [fillBackgroundRectArray(_:count:forCharacterRange:color:)](uikit/nslayoutmanager/fillbackgroundrectarray(_:count:forcharacterrange:color:).md)
- [showCGGlyphs(_:positions:count:font:textMatrix:attributes:in:)](uikit/nslayoutmanager/showcgglyphs(_:positions:count:font:textmatrix:attributes:in:).md)
- [strikethroughGlyphRange(_:strikethroughType:lineFragmentRect:lineFragmentGlyphRange:containerOrigin:)](uikit/nslayoutmanager/strikethroughglyphrange(_:strikethroughtype:linefragmentrect:linefragmentglyphrange:containerorigin:).md)
- [underlineGlyphRange(_:underlineType:lineFragmentRect:lineFragmentGlyphRange:containerOrigin:)](uikit/nslayoutmanager/underlineglyphrange(_:underlinetype:linefragmentrect:linefragmentglyphrange:containerorigin:).md)
