iOS6中的sizeWithFont:constrainedToSize:lineBreakMode:方法
例如:
UIFont *font = [UIFont systemFontOfSize:font12];
//设置一个行高上限
CGSize size = CGSizeMake(290,2000);
//计算实际frame大小,并将label的frame变成实际大小
CGSize labelsize = [self.contentLabel.text sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];
self.contentLabel.frame=CGRectMake(15, 0, labelsize.width, labelsize.height);
==============================================
iOS7中用以下方法boundingRectWithSize:options:attributes:context:替代过时的iOS6中的sizeWithFont:constrainedToSize:lineBreakMode:方法
例如:
UIFont *font = [UIFont systemFontOfSize:font12];
CGRect size=[self.contentLabel.text boundingRectWithSize:CGSizeMake(290, 2000) options:NSStringDrawingUsesLineFragmentOrigin attributes:[NSDictionary dictionaryWithObjectsAndKeys:font,NSFontAttributeName, nil] context:nil];
self.contentLabel.frame=CGRectMake(15, 0, size.size.width,size.size.height);