In iOS app development, there are times when it’s necessary to determine the number of lines displayed by a UILabel. This helps in making adjustments to the app’s user interface based on the number of lines the UILabel occupies. In this tutorial, we’ll provide a code snippet that calculates the number of lines in a UILabel.
Code snippet to calculating number of lines for UILabel
extension UILabel {
func countLines() -> Int {
guard let myText = self.text as NSString? else {
return 0
}
// Call self.layoutIfNeeded() if your view uses auto layout
let rect = CGSize(width: self.bounds.width, height: CGFloat.greatestFiniteMagnitude)
let labelSize = myText.boundingRect(with: rect, options: .usesLineFragmentOrigin, attributes: [NSAttributedString.Key.font: self.font as Any], context: nil)
return Int(ceil(CGFloat(labelSize.height) / self.font.lineHeight))
}
}How to use UILabel extension to find number of lines for UILabel
class ViewController: UIViewController {
@IBOutlet weak var labelTitle: UILabel!
override func viewDidLoad() {
if labelTitle.countLines() >= 2 {
// Do some stuff
}
}
}