IOS中label的自適應高度 四種方法

2021-07-26 20:59:56 字數 2282 閱讀 7745

測試一,只改變numberoflines屬性,label的高度不會自適應(會有text中的一部分內容稱為……)

nsstring *str = @」jgreijgirjeirgjierjgiu4t9eumctuv5 vtmnvghvmc5v5tgh58tc857y」;

uilabel *label = [[uilabel alloc]initwithframe:cgrectmake(50, 50, 100, 100)];

label.font = [uifont systemfontofsize:15];

label.backgroundcolor = [uicolor cyancolor];

label.numberoflines = 0;

label.text = str;

nslog(@」label1.frame = %@」,nsstringfromcgrect(label.frame));

[self.view addsubview:label];

測試二,如果加上numberoflines屬性和[label1 sizetofit]這句話,label的高度會根據你設定的寬度自適應,自己最開始設定的fram的高度會失效,,,注意注意:其實他的寬度和你的設定也有一定的偏差

uilabel *label1 = [[uilabel alloc]initwithframe:cgrectmake(100 ,150, 100, 0)];

label1.font = [uifont systemfontofsize:15];

label1.backgroundcolor = [uicolor cyancolor];

label1.numberoflines = 0;

label1.text = str;

[label1 sizetofit];

nslog(@"label1.frame = %@",nsstringfromcgrect(label1.frame));

[self.view addsubview:label1];

測試三:用老師封裝的類(category)中的方法(autolayoutcontent:origin:fontfloat:contentwidth:),不用設定numberoflines屬性和[label1 sizetofit]方法,,,但設定的contentwidth:寬度和真實的是有一點偏差的

uilabel *label2 = [[uilabel alloc]initwithframe:cgrectmake(100 , 300, 100, 0)];

// label2.font = [uifont systemfontofsize:15];

label2.backgroundcolor = [uicolor bluecolor];

label2.text = str;

[label2 autolayoutcontent:str origin:cgpointmake(100, 300) fontfloat:30 contentwidth:150];

nslog(@」label2.frame = %@」,nsstringfromcgrect(label2.frame));

[self.view addsubview:label2];

測試四:label自適應高度的非主流方法(用到numberoflines和sizethatfits:方法),,優點:寬度精準

uilabel *label3 = [[uilabel alloc]initwithframe:cgrectmake(150, 50, 150, 0)];

label3.font = [uifont systemfontofsize:15];

label3.backgroundcolor = [uicolor yellowcolor];

label3.numberoflines = 0;

label3.text = str;

cgsize size = [label3 sizethatfits:cgsizemake(label3.frame.size.width, maxfloat)];

label3.frame = cgrectmake(label3.frame.origin.x, label3.frame.origin.y, label3.frame.size.width, size.height);

nslog(@"label3.frame = %@",nsstringfromcgrect(label3.frame));

[self.view addsubview:label3];

ios 中內容label高度自適應

首先並且最重要的是計算文字高度,然後再設定label的高度,計算文字高度 假設文字 nsstring strtest 新華網北京12月16日電據新華社 新華國際 客戶端報道,一日之計在於晨 克強總理15日的緊張日程從一頓早飯開始。天剛濛濛亮,哈薩克總理馬西莫夫就來到克強總理下榻的酒店 北京大廈,邀請...

IOS中label的自適應高度 四種方法

測試一,只改變numberoflines 屬性,label 的高度不會自適應 會有text中的一部分內容稱為.nsstring str jgreijgirjeirgjierjgiu4t9eumctuv5 vtmnvghvmc5v5tgh58tc857y uilabel label uilabel a...

label自適應寬度

效果圖 後乙個文字是前乙個文字的後面 self namelb uilabel alloc init self namelb numberoflines 0 self namelb backgroundcolor uicolor redcolor self view addsubview self n...