美文网首页
cell行高的动态计算

cell行高的动态计算

作者: Mortimey_yt | 来源:发表于2018-08-22 14:43 被阅读36次

UITableView控件是我们日常开发中经常使用的控件之一,cell动态高度的计算也是老生常谈的问题,我们一般计算高度的方法都是,cell中得各个控件的高度计算出来,然后给外界抛出一个接口,用来获取cell高度,但是tableView返回高度的代理方法,总是频繁的调用,我们还要注意不要在主线程使用过于复杂的算法以免阻塞主线程.

  1. 预加载
    苹果在iOS7之后给我们新增一个API
- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath NS_AVAILABLE_IOS(7_0);

下面我们先来了解一下tableView计算高度的机制.
tableView在渲染之前会不停的调用heightForRowAtIndexPath方法返回对应cell高度,然后得到tableView的总高度,这意味在显示tableView之前需要进行大量的高度计算(这不是一屏,是计算所有数据的高度,并且是在主线程,很有可能会造成加载过慢,卡顿等现象)。有人问为什么不能等页面滑动到某个 cell 的时候,再计算高度呢?答案就是,tableView有一个小的ScrollIndicator滚动条,高度是用来确定滚动条的大小和位置的。
estimatedHeightForRowAtIndexPath这个方法的意思就是返回一个cell 高度的估计值,这样tableView就直接取估值用来确定滚动条的信息而不需要调用多次算高的代理方法,这样就可以大幅度提高tableView的加载速度。

需要注意的是:1.它是IOS7之后才有的API。2.如果你的业务需求需要你一开始使用到tableView的contentSize或者contentOffset,那么请慎用。
2.autoLayout自动算高
参考:https://my.oschina.net/hantianyu/blog/516244

相关文章

  • 如何动态的计算cell的高度

    如何动态的计算cell的高度 设置预估行高,tabelView.estimatedRowHeight = 200 ...

  • cell行高的动态计算

    UITableView控件是我们日常开发中经常使用的控件之一,cell动态高度的计算也是老生常谈的问题,我们一般计...

  • 动态计算cell的行高

    动态计算cell的行高,只需要在自定义cell里写入这个方法并声明,然后在cellForRow方法里设置table...

  • iOS Cell动态行高

    在iOS开发中,cell动态行高的设置无疑很让人抓狂,本文在此分享一个cell行高的动态获取方法;首先,本文介绍的...

  • iOS 使用模型动态计算行高

    一般情况下,如果cell里面有一个label需要动态计算行高,而且约束简单的话,可以使用系统的cell自适应高度的...

  • iOS7表格自适应高度

    增加约束,参考的label变小 cell自动计算行高 给预估行高tableView.estimatedRowHei...

  • [iOS 开发基础]- 动态计算cell行高

    这几天在网上搜寻技术文章时,简书上的文章总是很合胃口。于是就在简书上面注册了账号,简书上的文章都写的很精髓。这是我...

  • 记录一个好玩的 bug

    总结: reloaddata刷新是自上至下的刷新.需要动态计算 cell ,header, 或者 footer 高...

  • 利用YYLabel 富文本 动态计算Cell行高

    先看最终效果, 不同的Cell高度不同,被其中的内容所撑开image.png 将普通TableView分成 Con...

  • Label 不定高 行高

    Label 不定高 行高 // 动态计算高度 NSMutableAttributedString *attri...

网友评论

      本文标题:cell行高的动态计算

      本文链接:https://www.haomeiwen.com/subject/phzeiftx.html