/*---------- 文本自适应高度 -----------*/
UILabel * descritionLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 220, 300)];
NSString * desText = @"乔布斯是改变世界的天才,他凭敏锐的触觉和过人的智慧,勇于变革,不断创新,引领全球资讯科技和电子产品的潮流,把电脑和电子产品不断变得简约化、平民化,让曾经是昂贵稀罕的电子产品变为现代人生活的一部分。";
descritionLabel.text = desText;
descritionLabel.backgroundColor = [UIColor yellowColor];
descritionLabel.textColor = [UIColor colorWithRed:11/255.0 green:179/255.0 blue:252/255.0 alpha:0.9];
descritionLabel.font = [UIFont systemFontOfSize:20];
descritionLabel.lineBreakMode = NSLineBreakByTruncatingHead;//设置换行模式
descritionLabel.numberOfLines = 0; //设置文本行数为0时则不限制
CGSize contanSize = CGSizeMake(280, 400);//大小约束
//获取能显示完文本的大小
CGRect autoRect = [desText boundingRectWithSize:contanSize options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:descritionLabel.font} context:nil];
//用获取的大小重新设置frame
descritionLabel.frame = CGRectMake(50, 460, 280, autoRect.size.height);
[self.view addSubview:descritionLabel];
效果图如下所示: