根據文字內容自動計算文字高度

2021-08-07 21:56:23 字數 1547 閱讀 2038

在開發過程中,經常需要根據文字內容自適應高度,並設定行間距,這是寬度一般給乙個相對固定的寬度,

比如螢幕的寬度減去左右兩邊各15

個畫素的間距。下面是乙個計算自適應高度的標題和內容的**。

sesameremarkitemmodel

是乙個字典型別,裡面包含title和content字串。

#define kcellheightwithouttext

25.0

+15.0

+12.0

#define kscreenwidth [uiscreen mainscreen].bounds.size.width

+ (cgfloat)heightforcellwithmodel:(

sesameremarkitemmodel *)model

nsmutabledictionary *attr = [nsmutabledictionary dictionary];

[attr safesetobject:[uifont systemfontofsize:14] forkey:nsfontattributename];

nsattributedstring *title = [[nsattributedstring alloc] initwithstring:model.title attributes:attr];

cgfloat titleheight = [title boundingrectwithsize:cgsizemake(kscreenwidth - 30, 2000) options:nsstringdrawinguseslinefragmentorigin context:nil].size.height;

nsmutabledictionary *attr2 = [nsmutabledictionary dictionary];

[attr2 safesetobject:[uifont systemfontofsize:12] forkey:nsfontattributename];

nsmutableparagraphstyle *style = [[nsmutableparagraphstyle alloc] init];

style.linespacing = 5;

[attr2 safesetobject:style forkey:nsparagraphstyleattributename];

nsattributedstring *content = [[nsattributedstring alloc] initwithstring:model.content attributes:attr2];

cgfloat contentheight = [content boundingrectwithsize:cgsizemake(kscreenwidth - 30, 2000) options:nsstringdrawinguseslinefragmentorigin context:nil].size.height;

return kcellheightwithouttext + titleheight + contentheight;

}

iOS計算文字高度(根據文字內容)

ios 7之前 method 獲取指定寬度width,字型大小fontsize,字串value的高度 param value 待計算的字串 param fontsize 字型的大小 param width 限制字串顯示區域的寬度 result float 返回的高度 float heightfors...

iOS 根據文字內容確定文字框高度

第三方庫tqrichtextview 是乙個 混排的第三方庫,可以根據文字內容設定文字框的高度。系統也自帶了一種方法可以根據文字的內容設定文字的高度。uilabel testlabel uilabel new testlabel.backgroundcolor uicolor graycolor t...

swift 根據文字自動計算Label大小

方法 func textsize text string font uifont maxsize cgsize cgsize let textfont uifont.systemfont ofsize 14 let textstring 兒子中考考試考差了,被老婆罵了一頓。我去安慰兒子 你要努力學習...