iOS根据文本长度动态计算label的大小

Posted _Unique_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS根据文本长度动态计算label的大小相关的知识,希望对你有一定的参考价值。

今天有人问我该怎么根据label.Text的文本,动态计算label的size,因为有的时候,会用到这个功能,例如,再tableView中,动态改变cell的高的的时候,会经常用到,于是,我就简单谢了一个Demo,下面是主要代码:

NSString * labelText = @”这段代码主要是用来测试用的,根据文本内容,动态计算label的高度,这段代码主要是用来测试用的,根据文本内容,动态计算label的高度,这段代码主要是用来测试用的,根据文本内容,动态计算label的高度,”;

  UILabel * label = [[UILabel alloc] init];
    label.frame = CGRectMake(10, 100, 200, 200);
    label.backgroundColor = [UIColor redColor];
    label.text = labelText;
    CGSize size = [label.text boundingRectWithSize:CGSizeMake(300, MAXFLOAT) options: NSStringDrawingUsesLineFragmentOrigin attributes:[NSDictionary dictionaryWithObject:label.font forKey:NSFontAttributeName] context:nil].size;
    NSLog(@"%f",size.height);
    label.frame = CGRectMake(10, 100, size.width, size.height);
    label.numberOfLines = 0;
    [self.view addSubview:label];

注意:NSDictionary 部分一定要用label.font,这是为了防止计算的时候的属性和label的font的属性不同,计算结果和需要的大小有偏差,如果手动写属性,也可以,但是要把label.font和手写的属性设置相同。

以上是关于iOS根据文本长度动态计算label的大小的主要内容,如果未能解决你的问题,请参考以下文章

iOS UILabel讲解以及根据字符串长度自动适应宽度和高度

java中如何根据字符串长度来调整文本框大小

SwiftUI:根据字符串长度动态更改字体大小

iOS 根据给定宽度自适应文字大小

根据标签长度调整从 xib 创建的视图大小

根据字符长度怎样计算出需要显示的label宽度高度