OC 自適應(yīng)文本高度

前言:這兩天寫項目,發(fā)現(xiàn)計算文本高度的地方有點問題命锄,總是會多出一點來券时,作為有一點小潔癖的我來說,實在是有點蛋疼黄选,所以就重新寫了一個方法(廢話有點多了)蝇摸,進入正題

先貼上GItHub下載地址:https://github.com/puwd/AdaptTextHeight

樓主自己封裝了一個方法

- (CGFloat)calculateLabelHeightWithText:(NSString *)string width:(CGFloat)width fontSize:(int)fontSize
使用這個方法把需要計算的文本內(nèi)容放進去婶肩,傳一個寬度,在傳一個字體大小就可以了

    UILabel *label = [[UILabel alloc]init];
    label.numberOfLines = 0;
    label.font = [UIFont systemFontOfSize:fontSize];
    label.lineBreakMode = NSLineBreakByWordWrapping;
    label.text = string;
    CGSize size = [label sizeThatFits:CGSizeMake(width, MAXFLOAT)];
    NSLog(@"size.height is %f",size.height);
    return size.height;

使用labelsizeThatFits屬性來計算文本的高
MAXFLOAT是用來計算文本高度的貌夕,表示label的高度是隨label的內(nèi)容而變化的律歼,不會因為label的內(nèi)容過長而現(xiàn)實不全(如果說高度指定,也可以用來計算寬度)

再來看看label.lineBreakMode的各種樣式
    NSLineBreakByCharWrapping;     以字符為顯示單位顯示啡专,后面部分省略不顯示险毁。
    NSLineBreakByClipping;         剪切與文本寬度相同的內(nèi)容長度,后半部分被刪除们童。
    NSLineBreakByTruncatingHead;   前面部分文字以……方式省略畔况,顯示尾部文字內(nèi)容。
    NSLineBreakByTruncatingMiddle; 中間的內(nèi)容以……方式省略慧库,顯示頭尾的文字內(nèi)容跷跪。
    NSLineBreakByTruncatingTail;   結(jié)尾部分的內(nèi)容以……方式省略,顯示頭的文字內(nèi)容齐板。
    NSLineBreakByWordWrapping;     以單詞為顯示單位顯示吵瞻,后面部分省略不顯示。

貼上效果圖

屏幕快照 2017-06-30 下午9.15.34.png

上面的文本使用UILabel展示的
下面用的是UITextVIew展示

請注意

1.在使用該方法時甘磨,一定要讓展示控件的寬度和字體大小與傳過來的寬度和字體大小一致橡羞,否則內(nèi)容也是顯示不完整的
2.如果你是使用的UITextView展示,請在計算出來的高度上 +8;(因為UITextView默認是距離頂部8個像素點開始加載的(我是這樣理解的),如果不加8的話济舆,會出現(xiàn)底部的文字只能看到一半的效果)
3.如果你選擇用UILabel展示請設(shè)置label.numberOfLines = 0;

最后:歡迎指出錯誤卿泽,共同學習

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市滋觉,隨后出現(xiàn)的幾起案子签夭,更是在濱河造成了極大的恐慌,老刑警劉巖椎瘟,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異侄旬,居然都是意外死亡肺蔚,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進店門儡羔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宣羊,“玉大人,你說我怎么就攤上這事汰蜘〕鸱耄” “怎么了?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵族操,是天一觀的道長苛坚。 經(jīng)常有香客問我比被,道長,這世上最難降的妖魔是什么泼舱? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任等缀,我火速辦了婚禮,結(jié)果婚禮上娇昙,老公的妹妹穿的比我還像新娘尺迂。我一直安慰自己,他們只是感情好冒掌,可當我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布噪裕。 她就那樣靜靜地躺著,像睡著了一般股毫。 火紅的嫁衣襯著肌膚如雪膳音。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天皇拣,我揣著相機與錄音严蓖,去河邊找鬼。 笑死氧急,一個胖子當著我的面吹牛颗胡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播吩坝,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼毒姨,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了钉寝?” 一聲冷哼從身側(cè)響起弧呐,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嵌纲,沒想到半個月后俘枫,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡逮走,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年鸠蚪,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片师溅。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡茅信,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出墓臭,到底是詐尸還是另有隱情蘸鲸,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布窿锉,位于F島的核電站酌摇,受9級特大地震影響膝舅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜妙痹,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一铸史、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧怯伊,春花似錦琳轿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至吧秕,卻和暖如春琉闪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背砸彬。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工颠毙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人砂碉。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓蛀蜜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親增蹭。 傳聞我的和親對象是個殘疾皇子滴某,可洞房花燭夜當晚...
    茶點故事閱讀 43,562評論 2 349

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