ios - estimatedRowHeight 高度自适应

2020-07-07  本文已影响0人  简单Timor

我们的tableView常常需要高度计算,比如邻里圈等有不定的换行文字或者有不指定图片的时候,简单来说就是动态布局。

这种高度的适配方法有很多。

  1. 在model中计算出高度,然后再到
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
   return model.height;//此处height为model中计算的高度
}

之前我使用的就是此方法,相对于其他方法来说,性能比较高。优选。但是计算会比estimatedRowHeight的方法复杂一些。这里就不详细阐述。

  1. 采用estimatedRowHeight 高度自适应的方式。(今天的主角),优点:自适应,简单易用,不再需要频繁的计算,将一切交给系统。缺点:性能不如上述方法。
    步骤:
    1.在tableView初始化的时候,需要两个方法
_mTableView.estimatedRowHeight = 146;//这里指定预设高度,虽然没什么用,但是必须指定 
_mTableView.rowHeight = UITableViewAutomaticDimension;
  1. 我是Xib创建的cell。这里需要记住一点,在垂直方向上的约束一定要从上到下贯通
    截屏2020-07-07下午5.59.10.png
截屏2020-07-07下午5.59.25.png
  1. 设置你不确定高度的控件高度大于最小高度。


    截屏2020-07-07下午6.01.48.png
  2. tableView代码里不要有这个方法
//- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
//
//    return 150;
//}
  1. 现在就可以完美的自适应了。 还是要少用这种方法,性能有影响。
上一篇 下一篇

猜你喜欢

热点阅读