截止到目前我只找到了一种好用的方法:
1.首先需要对tableviewcell中的view添加auto layout约定,这个必不可少,是我要说的这种方法是否好用的关键
2.设置tableview的row height 为UITableViewAutomaticDimension,如下:
// 让tableview中行自适应
self.table.rowHeight = UITableViewAutomaticDimension;
3.在viewcontroller页面中实现estimatedHeightForRowAtIndexPath方法,该方法作用是在cell并未加载到页面的时候先给cell一个预估高度,这个方法必须实现,我在测试中,一开始没有实现该方法,结果发现cell不能自适应,等将该方法实现之后,自适应就能实现了,里面的返回值的大小可以自己设定,比如:
/* 如果想要tableview中的行自适应,需要先给一个预约值,在cell没有加载到页面的时候的估计值,等cell加载在页面的时候会自动计算cell应该展示的高度
*/
- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath*)indexPath{
return 44;
}
4.在页面中补全其余代码即可,这个方法不需要自己再自动计算cell的高度,然后再展示出来