1.iOS7及其以上
可以通过计算文字高度的方法输出高度
NSString *str = [_laughtInfoDic objectForKey:@"info"];;
UIFont *tfont = [UIFont systemFontOfSize:11.0];
NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:tfont,NSFontAttributeName,nil];
CGSize sizeText = [str boundingRectWithSize:CGSizeMake(ScreenWidth-5, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:dic context:nil].size;
return sizeText.height+50;
2.iOS8及其以上
通过自适应高度的方法让系统自动进行处理
要让 table view 的 cell 自适应内容,有几个要点:
1).设置的 AutoLayout 约束必须让 cell 的 contentView 知道如何自动延展。关键点是 contentView 的 4 个边都要设置连接到内容的约束,并且内容是会动态改变尺寸的。
2).UITableView 的 rowHeight 的值要设置为 UITableViewAutomaticDimension
3).和 iOS 7 一样,可以实现 estimatedHeightForRowAtIndexPath 方法提升 table view 的第一次加载速度。
4).任何时候 cell 的 intrinsicContentSize 改变了(比如 table view 的宽度变了),都必须重新加载 table view 以更新 cell。