美文网首页
tableview 中heightForRow方法 与 性能优化

tableview 中heightForRow方法 与 性能优化

作者: 傅里叶的幻想 | 来源:发表于2017-04-23 22:42 被阅读0次

    一)调用有两处

    1)此代理方法每次reload都会调用,调用次数就是数据源给出的cell的个数.目的是算出contentsize.height 这样给出精确的滚动条
    2)每次有新的cell进入,都会再次调用此cell的heigtforRow,目的是算出本cell的高度
    所以,在此方法计算cell的frame 效率比较低,因为会重复调用,重复计算.

    二)性能优化:

    1)self.tableView.estimatedRowHeight = 44;
    2)- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath
    {
    return 44;
    }
    
    

    这是预算高,得到的滚动条不精确,reload的时候哪怕有100条数据 也只有几次到十几次(与返回值(44)有关系,越大调用次数越少,不过也不能太大,太大滚动条误差太大,会发生跳跃) .
    哪些cell要显示,会调用cellForRow 得到真实高度.

    总结:

    优点:用estimate 可以有效的降低cellForRow的调用次数,完成性能的优化

    缺点:滚动条不准确,有卡顿感

    相关文章

      网友评论

          本文标题:tableview 中heightForRow方法 与 性能优化

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