swift 計算字體的寬度

計算字體寬度

/**
 * 計算寬度  內(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
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補...
    _Yfling閱讀 14,158評論 1 92
  • 作者:HelKyle鏈接:http://www.w3cplus.com/css/when-to-use-em-vs...
    紅葉丶秋鳴閱讀 3,475評論 0 3
  • 學(xué)會使用CSS選擇器熟記CSS樣式和外觀屬性熟練掌握CSS各種選擇器熟練掌握CSS各種選擇器熟練掌握CSS三種顯示...
    七彩小鹿閱讀 6,445評論 2 66
  • 估計大盤近期繼續(xù)上升,很有可能會觸及3500點; 光迅科技,輕倉中,等待明確的加倉位置;今天做了個T, 成功;計劃...
    W大先生閱讀 281評論 0 0
  • 從校園到職場,是人生從零開始的過程,學(xué)生時代的成績競爭,變成了另一種無形的競爭,不同的差距在很短時間內(nèi)快速顯現(xiàn),善...
    思維小腦袋閱讀 1,631評論 0 2

友情鏈接更多精彩內(nèi)容