Multiline UIButton and autolayout

后端 未结 16 1497
无人共我
无人共我 2020-12-03 13:08

I have created a view controller that looks like this:

\"enter

I want the two

16条回答
  •  情歌与酒
    2020-12-03 14:04

    Swift 4.1.2 Version based on @Jan answer.

    import UIKit
    
    class MultiLineButton: UIButton {
    
        // MARK: - Init
    
        required init?(coder aDecoder: NSCoder) {
            super.init(coder: aDecoder)
    
            self.commonInit()
        }
    
        private func commonInit() {
            self.titleLabel?.numberOfLines = 0
            self.titleLabel?.lineBreakMode = .byWordWrapping
        }
    
        // MARK: - Overrides
    
        override var intrinsicContentSize: CGSize {
            get {
                 return titleLabel?.intrinsicContentSize ?? CGSize.zero
            }
        }
    
        override func layoutSubviews() {
            super.layoutSubviews()
            titleLabel?.preferredMaxLayoutWidth = titleLabel?.frame.size.width ?? 0
            super.layoutSubviews()
        }
    
    }
    

提交回复
热议问题