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。