在開發過程中,經常需要根據文字內容自適應高度,並設定行間距,這是寬度一般給乙個相對固定的寬度,
比如螢幕的寬度減去左右兩邊各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 兒子中考考試考差了,被老婆罵了一頓。我去安慰兒子 你要努力學習...