參考:
本文介紹一下自定義行間距的uilabel的高度如何獲取,需要借助一下開源的uilabel控制項:
tttattributedlabel
#import直接上**"tttattributedlabel.h
"
nsstring *str = @"uilabel自定義行間距時獲取高度,uilabel自定義行間距時獲取高度,uilabel自定義行間距時獲取高度,uilabel自定義行間距時獲取高度,uilabel自定義行間距時獲取高度,uilabel自定義行間距時獲取高度,uilabel自定義行間距時獲取高度.";
//建立tttlabel
tttattributedlabel *tttlabel = [[tttattributedlabel alloc] initwithframe:cgrectmake(30, 55, 300, 100
)]; tttlabel.linespacing = 6;//
設定行間距
tttlabel.font = [uifont systemfontofsize:12
]; tttlabel.numberoflines = 0; //
設定行數為0
[tttlabel settext:str];
tttlabel.textalignment =nstextalignmentleft;
tttlabel.backgroundcolor =[uicolor redcolor];
[self.view addsubview:tttlabel];
//獲取tttlabel的高度
//先通過nsmutableattributedstring設定和上面tttlabel一樣的屬性,例如行間距,字型
nsmutableattributedstring *attrstring =[[nsmutableattributedstring alloc] initwithstring:str];
//自定義str和tttattributedlabel一樣的行間距
nsmutableparagraphstyle *paragrapstyle =[[nsmutableparagraphstyle alloc] init];
[paragrapstyle setlinespacing:6];
//設定行間距
[attrstring addattribute:nsparagraphstyleattributename value:paragrapstyle range:nsmakerange(0
, str.length)];
//設定字型
[attrstring addattribute:nsfontattributename value:[uifont systemfontofsize:12] range:nsmakerange(0
, str.length)];
//得到自定義行間距的uilabel的高度
cgfloat height = [tttattributedlabel sizethatfitsattributedstring:attrstring withconstraints:cgsizemake(300, maxfloat) limitedtonumberoflines:0
].height;
//重新改變tttlabel的frame高度
cgrect rect =tttlabel.frame;
rect.size.height =height;
tttlabel.frame = rect;
使用組合自定義行為
如果您的設計依賴於繼承,則需要找到一種方法來更改物件的型別以更改其行為。對於組合,您只需要更改物件使用的策略 想象一下,我們的經理突然變成了按小時計酬的臨時雇員。您可以通過以下方式在程式執行期間修改物件 in program.py from hr import payrollsystem,hourl...
pandas自定義行數apply
pandas是資料分析的利器,它內建許多的函式,我之前的一篇部落格對pandas的一些常用函式都做了介紹,但是很多時候光是他本身自帶的函式可能還不夠用,所以這裡介紹一下pandas資料型別dataframe的乙個方法,可以讓我們的自定義函式運用在上面。下面看一段 import pandas as p...
gridview顯示資料每 (自定義)行顯示一空行
如題,比如說我想要在gridview顯示資料時每 行動態新增乙個空行,與其他資料分隔開 具體 如下 intnum asinteger 0 記錄當前資料行繫結的位置 dimidentity asinteger 0 記錄前面動態新增了幾個空行 protected subgridview1 rowdata...