Search code examples
iosswiftuilabel

UILabel subclass - text cut off in bottom despite label being correct height


I have a problem with UILabel subclass cutting off text in the bottom. Label is of proper height to fit the text, there is some space left in the bottom, but the text is still being cut off.

The label

The red stripes are border added to label's layer.

I subclass the label to add edge insets.

override func sizeThatFits(size: CGSize) -> CGSize {
    var size = super.sizeThatFits(size)
    size.width += insets.left + insets.right
    size.height += insets.top + insets.bottom
    return size
}

override func drawTextInRect(rect: CGRect) {
    super.drawTextInRect(UIEdgeInsetsInsetRect(rect, insets))
}

However, in this particular case the insets are zero.


Solution

  • Turns out the problem was with

    self.lineBreakMode = .ByClipping
    

    changing it to

    self.lineBreakMode = .ByCharWrapping
    

    Solved the problem