How to align UILabel text from bottom?

后端 未结 10 1501
盖世英雄少女心
盖世英雄少女心 2021-02-03 19:08

How the UILabel can be aligned from bottom. Let say, my label can hold three line of text.If the input text is single line, then this line should come bottom of the

10条回答
  •  悲&欢浪女
    2021-02-03 20:07

    Swift 4.2 version using the contentMode property to set top and bottom:

    class VerticalAlignedLabel: UILabel {
        
        override func drawText(in rect: CGRect) {
            var newRect = rect
            switch contentMode {
            case .top:
                newRect.size.height = sizeThatFits(rect.size).height
            case .bottom:
                let height = sizeThatFits(rect.size).height
                newRect.origin.y += rect.size.height - height
                newRect.size.height = height
            default:
                ()
            }
            
            super.drawText(in: newRect)
        }
    }
    

    Then setup your label like that:

    let label = VerticalAlignedLabel()
    label.contentMode = .bottom
    

提交回复
热议问题