計算文字的寬高

方法一 :ios7.0之前適用

/**
 @method 獲取指定寬度width,字體大小fontSize,字符串value的高度
 @param value 待計算的字符串
 @param fontSize 字體的大小
 @param Width 限制字符串顯示區(qū)域的寬度
 @result float 返回的高度
 */
- (float) heightForString:(NSString *)value fontSize:(float)fontSize andWidth:(float)width
{
    CGSize sizeToFit = [value sizeWithFont:[UIFont systemFontOfSize:fontSize]
                         constrainedToSize:CGSizeMake(width -16.0, CGFLOAT_MAX)
                             lineBreakMode:NSLineBreakByWordWrapping];
        //此處的換行類型(lineBreakMode)可根據(jù)自己的實際情況進行設置
    return sizeToFit.height + 16.0;
}

方法二 :ios7.0及之后適用

/**
 @method 獲取指定寬度width,字體大小fontSize,字符串value的高度
 @param value 待計算的字符串
 @param fontSize 字體的大小
 @param Width 限制字符串顯示區(qū)域的寬度
 @result float 返回的高度
 */
- (float) heightForString:(NSString *)value andWidth:(float)width{
    //獲取當前文本的屬性
    NSAttributedString *attrStr = [[NSAttributedString alloc] initWithString:value];
    _text.attributedText = attrStr;
    NSRange range = NSMakeRange(0, attrStr.length);
    // 獲取該段attributedString的屬性字典
    NSDictionary *dic = [attrStr attributesAtIndex:0 effectiveRange:&range];
    // 計算文本的大小
    CGSize sizeToFit = [value boundingRectWithSize:CGSizeMake(width - 16.0, MAXFLOAT) // 用于計算文本繪制時占據(jù)的矩形塊
                                               options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading // 文本繪制時的附加選項
                                            attributes:dic        // 文字的屬性
                                               context:nil].size; // context上下文。包括一些信息,例如如何調(diào)整字間距以及縮放敞掘。該對象包含的信息將用于文本繪制陈醒。該參數(shù)可為nil
    return sizeToFit.height + 16.0;
}

注意:再前兩種方法中,UITextView在上下左右分別有一個8pxpadding儡率,需要將UITextView.contentSize.width減去16像素(左右的padding 2 x 8px)谒撼。同時返回的高度中再加上16像素(上下的padding),這樣得到的才是UITextView真正適應內(nèi)容的高度辟汰。如代碼中 CGSizeMake(width -16.0, CGFLOAT_MAX),return sizeToFit.height + 16.0阱佛。 UILable中則不用

方法三:通用(推薦)

/**
 @method 獲取指定寬度width的字符串在UITextView上的高度
 @param textView 待計算的UITextView
 @param Width 限制字符串顯示區(qū)域的寬度
 @result float 返回的高度
 */
- (float) heightForString:(UITextView *)textView andWidth:(float)width{
     CGSize sizeToFit = [textView sizeThatFits:CGSizeMake(width, MAXFLOAT)];
    return sizeToFit.height;
}

補充:
UITableView中帖汞,設置cell的動態(tài)高度,也可以使用第三種方法來進行設置凑术。
1翩蘸、先在定義一個UILabel的變量(全局的),不往視圖上放淮逊。
2催首、給此變量進行賦值,并計算計算高度泄鹏。
3郎任、重復第二個操作

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市备籽,隨后出現(xiàn)的幾起案子舶治,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件歼疮,死亡現(xiàn)場離奇詭異杂抽,居然都是意外死亡,警方通過查閱死者的電腦和手機韩脏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門缩麸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人赡矢,你說我怎么就攤上這事杭朱。” “怎么了吹散?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵弧械,是天一觀的道長。 經(jīng)常有香客問我空民,道長刃唐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任界轩,我火速辦了婚禮画饥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘浊猾。我一直安慰自己抖甘,他們只是感情好,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布葫慎。 她就那樣靜靜地躺著衔彻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪偷办。 梳的紋絲不亂的頭發(fā)上艰额,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天,我揣著相機與錄音爽篷,去河邊找鬼悴晰。 笑死,一個胖子當著我的面吹牛逐工,可吹牛的內(nèi)容都是我干的铡溪。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼泪喊,長吁一口氣:“原來是場噩夢啊……” “哼棕硫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起袒啼,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤哈扮,失蹤者是張志新(化名)和其女友劉穎纬纪,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體滑肉,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡包各,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了靶庙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片问畅。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖六荒,靈堂內(nèi)的尸體忽然破棺而出护姆,到底是詐尸還是另有隱情,我是刑警寧澤掏击,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布卵皂,位于F島的核電站,受9級特大地震影響砚亭,放射性物質(zhì)發(fā)生泄漏灯变。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一钠惩、第九天 我趴在偏房一處隱蔽的房頂上張望柒凉。 院中可真熱鬧,春花似錦篓跛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鲤遥,卻和暖如春沐寺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盖奈。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工混坞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人钢坦。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓究孕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親爹凹。 傳聞我的和親對象是個殘疾皇子厨诸,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,754評論 1 92
  • 原來用Masonry計算TextView的時候不需要計算高度禾酱。如下微酬,自適應就可以了绘趋。 傳統(tǒng)的計算高度方法如下: 方...
    哈么么茶閱讀 11,919評論 6 7
  • 2018、2颗管、19 郴州 晴 過年這幾天都在忙著走親戚陷遮,從年初一就忙到了今天了,天天吃吃喝喝垦江,時...
    梅子日記閱讀 371評論 0 1
  • 大二下學期自學材料基本知識帽馋,期末進入陶瓷實驗室,暑假留校一個月疫粥,之后半年時間邊實驗邊參加課程學習茬斧,后參加考研至今。...
    李澤遠閱讀 900評論 0 0
  • 晚安梗逮,我懷念的项秉,我憧憬的,都在慢慢繼續(xù)著
    我會發(fā)光啊idol閱讀 122評論 0 0