ios - estimatedRowHeight 高度自适应
2020-07-07 本文已影响0人
简单Timor
我们的tableView常常需要高度计算,比如邻里圈等有不定的换行文字或者有不指定图片的时候,简单来说就是动态布局。
这种高度的适配方法有很多。
- 在model中计算出高度,然后再到
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return model.height;//此处height为model中计算的高度
}
之前我使用的就是此方法,相对于其他方法来说,性能比较高。优选。但是计算会比estimatedRowHeight的方法复杂一些。这里就不详细阐述。
- 采用estimatedRowHeight 高度自适应的方式。(今天的主角),优点:自适应,简单易用,不再需要频繁的计算,将一切交给系统。缺点:性能不如上述方法。
步骤:
1.在tableView初始化的时候,需要两个方法
_mTableView.estimatedRowHeight = 146;//这里指定预设高度,虽然没什么用,但是必须指定
_mTableView.rowHeight = UITableViewAutomaticDimension;
- 我是Xib创建的cell。这里需要记住一点,在垂直方向上的约束一定要
从上到下贯通
。
截屏2020-07-07下午5.59.10.png

-
设置你不确定高度的控件高度大于最小高度。
截屏2020-07-07下午6.01.48.png
- tableView代码里不要有这个方法
//- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
//
// return 150;
//}
- 现在就可以完美的自适应了。 还是要少用这种方法,性能有影响。