| 12345678910111213141516171819202122232425262728293031 |
- //
- // String+Extension.swift
- // AiKeyboard
- //
- // Created by Destiny on 2025/4/25.
- //
- import Foundation
- import UIKit
- extension String {
-
- public var isBlank: Bool {
- return self.trimmingCharacters(in: NSCharacterSet.whitespacesAndNewlines) == ""
- }
-
- public func heightAccording(width: CGFloat, height: CGFloat = CGFloat(MAXFLOAT), font: UIFont, lineSpacing: CGFloat) -> CGFloat {
- if self.isBlank {return 0}
- let rect = CGRect(x: 0, y: 0, width: width, height: height)
- let label = UILabel(frame: rect)
- label.font = font
- label.text = self
- label.numberOfLines = 0
- let attrStr = NSMutableAttributedString(string: self)
- let paragraphStyle = NSMutableParagraphStyle()
- paragraphStyle.lineSpacing = lineSpacing
- attrStr.addAttribute(NSAttributedString.Key.paragraphStyle, value: paragraphStyle, range: NSMakeRange(0, self.count))
- label.attributedText = attrStr
- return label.sizeThatFits(rect.size).height
- }
- }
|