計算字體寬度
/**
* 計算寬度 內(nèi)容 字體大小
*/
public func textWidth(text: String, font: UIFont) -> CGFloat {
//給定的最大寬度、因為計算寬度,高度無所謂
let size = CGSize(width: 20000, height: 100)
let attributes = [NSAttributedString.Key.font: font]
let labelSize:CGRect = NSString(string: text).boundingRect(with: size, options: .usesLineFragmentOrigin, attributes: attributes, context: nil)
return labelSize.width
}
//或者
extension String {
/**
* 計算字體寬度 字體大小
*/
public func textWidth(font: UIFont) -> CGFloat {
let str = self as NSString
let size = CGSize(width: 20000, height: 100)
let attributes = [NSAttributedString.Key.font: font]
let labelSize = str.boundingRect(with: size, options: .usesLineFragmentOrigin, attributes: attributes, context: nil).size
return labelSize.width
}
}
計算字體高度
/**
* 計算高度 字體寬度 內(nèi)容(根據(jù)寬度計算高度) 字體大小
*/
public func textHeight(width: CGFloat, text: String, font: UIFont) -> CGFloat {
let size = CGSize(width: width, height: 2000)
let attributes = [NSAttributedString.Key.font: font]
let labelSize:CGRect = NSString(string: text).boundingRect(with: size, options: .usesLineFragmentOrigin, attributes: attributes, context: nil)
return labelSize.height
}
extension String {
/**
* 計算字體高度 字體寬度(根據(jù)寬度計算高度) 字體大小
*/
public func textHeight(textWidth: CGFloat, font: UIFont) -> CGFloat {
let str = self as NSString
let size = CGSize(width: textWidth, height: 2000)
let attributes = [NSAttributedString.Key.font: font]
let labelSize = str.boundingRect(with: size, options: .usesLineFragmentOrigin, attributes: attributes, context: nil).size
return labelSize.height
}
}