您的位置:首页 > 移动开发 > IOS开发

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

2015-12-03 09:52 375 查看
今天有人问我该怎么根据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和手写的属性设置相同。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: