tableviewcell自适应高度

方法一:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {       
   NSStringDrawingOptions options = NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading | NSStringDrawingTruncatesLastVisibleLine;
// width 是label的宽度,固定宽度 计算高度
   CGRect size = [_dataArray[indexPath.row] boundingRectWithSize:CGSizeMake(width, 1000) options:options attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:16]} context:nil];
   return size.size.height+25; // 多加的高度用于上下留白
}
方法二:(iOS8-iOS10)
self.tab.estimatedRowHeight = 50; // 先设置预估高度
self.tab.rowHeight = UITableViewAutomaticDimension;
// 需要将cell上的子控件约束好
// 不用实现heightForRowAtIndexPath方法

如果使用第二种方法后,cell没有自适应,需要看一下约束加的是否正确

参考:

UITableViewCell AutoLayout动态行高总结(兼容iOS7)
UITableViewCell 高度自适应

推荐一篇:

UITableView的性能优化

你可能感兴趣的:(tableviewcell自适应高度)