Adjust UILabel height depending on the text

前端 未结 30 2163
走了就别回头了
走了就别回头了 2020-11-22 03:53

Consider I have the following text in a UILabel (a long line of dynamic text):

Since the alien army vastly outnumbers the team, players m

30条回答
  •  無奈伤痛
    2020-11-22 04:16

    UILabel extension based on this answer for Swift 4 and above

    extension UILabel {
    
        func retrieveTextHeight () -> CGFloat {
            let attributedText = NSAttributedString(string: self.text!, attributes: [NSFontAttributeName:self.font])
    
            let rect = attributedText.boundingRect(with: CGSize(width: self.frame.size.width, height: CGFloat.greatestFiniteMagnitude), options: .usesLineFragmentOrigin, context: nil)
    
            return ceil(rect.size.height)
        }
    
    }
    

    Can be used like:

    self.labelHeightConstraint.constant = self.label.retrieveTextHeight()
    

提交回复
热议问题