让Label的自适应文本,自动调整的高度

iOS开发,在使用Label过程中我们发现label有一个numberOfLines 的属性, 这用于设置label的行数。但在开发过程中,label中的内容有时是动态的,下面的代码能够实现label自动适应文本信息,调整自己的行数。前提是label的宽度固定。

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];这个frame是初设的,没关系,后面还会重新设置其size。
[label setNumberOfLines:0];
NSString *s = @"string......";
UIFont *font = [UIFont fontWithName:@"Arial" size:12];
CGSize size = CGSizeMake(320,2000);
CGSize labelsize = [s sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];
[label setFrame:CGRectMake:(0,0, labelsize.width, labelsize.height)];
[self.view addSubView:label];
这样就可以对s赋值让其自动调整其大小了。

原文地址:https://www.cnblogs.com/wyhwyh2114/p/5025200.html