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("改行なし") }