ゆるみれ blog

つよくなる

UILabelの改行判定【Swift】

private extension UILabel {
    func countLines() -> Int {
        guard let text = self.text as NSString? else { return 0 }
        let rect = CGSize(width: self.bounds.width, height: CGFloat.greatestFiniteMagnitude)
        let labelSize = text.boundingRect(with: rect, options: .usesLineFragmentOrigin, attributes: [NSAttributedString.Key.font: self.font as Any], context: nil)
        return Int(ceil(CGFloat(labelSize.height) / self.font.lineHeight))
    }
}
if label.countLines() > 0 {
    print("改行あり")
} else {
   print("改行なし")
}