IOS开发之UILabel自适应高度

今天做UIlabel自适应高度的时候,快郁闷死了,后台返回的不是一个完整的字符串,所以以前的那套代码已经没有效果了,钻研了一会之后终于搞出来了,做下记录:

1、设置最大显示行数(=0时不限制),自适应需要设置为0:

label.numberOfLines = 0; 

2、设置text属性的文本内容:

label.text = @""; //内容需要够长才能显示效果

3、设置文字自动填满Label

[label sizeToFit];

4、计算CGRect

CGRect rect = [label.text boundingRectWithSize:CGSizeMake(self.view.frame.size.width - 20, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName: label.font} context:nil];

5、重新设置UIlabel的frame

label.frame=CGRectMake(0,0,self.view.frame.size.width - 20, rect.size.height);

6、然后设置cell的行高为rect.size.height(可以先把rect.size.height赋值给一个全局的CGFloat对象,然后返回cell的高度时,把CGFloat对象返回)如:

_cellHeight=rect.size.height;

-(CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath{

    return _cellHeight;

}

你可能感兴趣的:(IOS开发之UILabel自适应高度)