很多情況下,網路請求的內容不完全一致,需要自適應給定高度,本文簡單實現了ios7 與ios7之前實現自適應撐高的方法,歡迎拍磚。
uilabel * testlable = [[uilabel
alloc]initwithframe:cgrectmake(10,200,200,20)];
nsstring
* tstring =
@"香格里拉等全國1400家景區門票國慶期間將優惠20%香格里拉等全國1400家景區門票國慶期間將優惠20%香格里拉等全國1400家景區門票國慶期間將優惠20%香格里拉等全國1400家景區門票國慶期間將優惠20%香格里拉"
;testlable.numberoflines =0;
uifont * tfont = [uifont
systemfontofsize:14];
testlable.font = tfont;
testlable.
linebreakmode
testlable.text = tstring ;
[self.view
addsubview:testlable];
//給乙個比較大的高度,寬度不變
cgsize size =cgsizemake(200,1000);
// 獲取當前文字的屬性
nsdictionary
* tdic = [
nsdictionary
dictionarywithobjectsandkeys:tfont,
nsfontattributename
,nil
];//ios7方法,獲取文字需要的size,限制寬度
cgsize
actualsize =[tstringboundingrectwithsize:sizeoptions:nsstringdrawinguseslinefragmentorigin|nsstringdrawingusesfontleadingattributes:tdiccontext:
nil].
size;
// ios7之前使用方法獲取文字需要的size,7.0已棄用下面的方法。此方法要求font,與breakmode與之前設定的完全一致
// 更新label的frame
testlable.frame =cgrectmake(10,200, actualsize.width, actualsize.height);
需要自適應撐高的label不要使用xib ,會造成少量字元的丟失,目前沒有找到原因,如圖上面一段文字為xib的效果,下面為自定義的效果。
IOS之UILabel自適應高度
當label文字框大小一定的情況下,而要顯示的文字內容長度大於label的weight是,多出的內容只能用.代替了。如何能讓文字內容不管多少都能全部的顯示出來呢。在這裡就寫了乙個uilabel的類目,該類目的方法就能很好的解決這一問題。如下 import inte ce uilabel autore...
UILabel的自適應長度
這個frame是無所謂的,後面還會重新設定它的size。uilabel label uilabel alloc initwithframe cgrectmake 0,0,0,0 label.numberoflines 0 建立乙個字型大小的字典 nsdictionary attributes nss...
IOS開發中UILabel自適應大小顯示的方法
1,根據label中的文字內容自動換行顯示的方法 1 認識兩個屬性 property nonatomic nsintegernumberoflines property nonatomic nslinebreakmodelinebreakmode 其中nslinebreakmode為列舉型別 ns ...