iOS7 UILabel的自適應撐高

2021-06-18 13:11:43 字數 1363 閱讀 7057

很多情況下,網路請求的內容不完全一致,需要自適應給定高度,本文簡單實現了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 ...