【iOS】UILabel自適應高度和自動換行
阿新 • • 發佈:2019-02-13
我們需要根據UILabel中字串的多少來確定label的大小(長度),下面是label自適應大小的方法
//初始化label UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)]; //設定自動行數與字元換行 [labelsetNumberOfLines:0]; // 0代表有無限多行 label.lineBreakMode = UILineBreakModeWordWrap; // 這個是換行模式,按單詞換行 // 測試字串 NSString *str = @" 這裡有好多字...這裡有好多字...這裡有好多字...這裡有好多字... 這裡有好多字...這裡有好多字...這裡有好多字...這裡有好多字...這裡有好多字...這裡有好多字...這裡有好多字...這裡有好多字...";
//
把字串加到label上
label.text
= str;
//
設定字型
label.font
= [UIFont fontWithName:@"Arial"size:12];
//設定一個行高上限
CGSize
size =
CGSizeMake(label.frame.size.width,2000);
//計算實際frame大小,並將label的frame變成實際大小
CGSize
labelSize = [label.text
sizeWithFont :label.fontconstrainedToSize:size
lineBreakMode:UILineBreakModeWordWrap];
label.frame
=
CGRectMake(0,
0, label.frame.size.width,
labelSize.height);
//初始化label UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)]; //設定自動行數與字元換行 [labelsetNumberOfLines:0]; // 0代表有無限多行 label.lineBreakMode = UILineBreakModeWordWrap; // 這個是換行模式,按單詞換行 // 測試字串 NSString *str = @" 這裡有好多字...這裡有好多字...這裡有好多字...這裡有好多字...