String+Extension.swift 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. //
  2. // String+Extension.swift
  3. // AiKeyboard
  4. //
  5. // Created by Destiny on 2025/4/25.
  6. //
  7. import Foundation
  8. import UIKit
  9. extension String {
  10. public var isBlank: Bool {
  11. return self.trimmingCharacters(in: NSCharacterSet.whitespacesAndNewlines) == ""
  12. }
  13. public func heightAccording(width: CGFloat, height: CGFloat = CGFloat(MAXFLOAT), font: UIFont, lineSpacing: CGFloat) -> CGFloat {
  14. if self.isBlank {return 0}
  15. let rect = CGRect(x: 0, y: 0, width: width, height: height)
  16. let label = UILabel(frame: rect)
  17. label.font = font
  18. label.text = self
  19. label.numberOfLines = 0
  20. let attrStr = NSMutableAttributedString(string: self)
  21. let paragraphStyle = NSMutableParagraphStyle()
  22. paragraphStyle.lineSpacing = lineSpacing
  23. attrStr.addAttribute(NSAttributedString.Key.paragraphStyle, value: paragraphStyle, range: NSMakeRange(0, self.count))
  24. label.attributedText = attrStr
  25. return label.sizeThatFits(rect.size).height
  26. }
  27. }