• UITableView性能优化【本文摘自智车芯官网】


     UITableView是个表格视图,可以在表格行空间中添加多个子控件,UITableView继承了UIScrollView,默认状态下可以堆单元格进行滚动,所有的UITableViewController实例被自动设为UIScrollView委托。

       UITableView的核心就是UITableViewCell的重用机制。总的来说就是UITableView只会创建一个屏幕的UITableViewCell,其他的都是丛中取出来重用的。每当Cell滑出屏幕时,就会放入到一个集合中,当要显示某一位置的Cell时,会先去集合中取,如果有,就直接拿来显示,如果没有就去创建。这样做的好处就是极大的减少了内存的开销。

    UITableView有两个最主要的回调方法

     

    根据我们创建控件的思路来看,一般我们都会觉得先调用前者再调用后者,但实际上UITableView是集成UIScrollView的,需要先确定它的contentsize及每个Cell的位置,然后才会把重用的Cell放置到对应的位置。所以UITableView的回调顺序是先多次调用后者以确定contentsize及Cell的位置,才会调用前者方法来显示在当前屏幕的Cell。

    从上面可以看出,优化UITableView可以从这两个方法入手。一个负责赋值,一个负责计算高度,两者各司其职,代码功能都不要重叠,都尽可能的简单易算。在获得数据后,直接根据数据源计算出相对应的布局,并缓存到数据源中,这样在heightForRowAtIndexPath方法中就直接返回高度,而不需要每次都计算了。

    总的来说,UITableView的优化主要从以下几点入手:

    1、       提前算好Cell的高度

    2、       异步绘制

    3、       滑动时按需求加载

    4、       按正确的方式来使用reuseidentifier来重用Cell

    5、       尽量使所有的view opaque

    6、       web内容使用异步加载并缓存结果

    7、       减少subview的数量

    8、       尽量不在heightFoeRowAtIndexPath中使用cellForRowAtIndexPath

    9、       尽量少用addview添加董涛view,在初始化时就添加,通过hide来控制是否显示

    本文摘自智车芯官网:http://www.thinkobd.cn/

  • 相关阅读:
    WPF多线程问题
    SQL 使用经验
    [转]express 路由控制--next
    [转]浅谈Web缓存
    [转]一份优秀的前端开发工程师简历是怎么样的?
    http
    [转]HTTP详解(1)-工作原理
    [转]使用Flexible实现手淘H5页面的终端适配
    [转]理解$watch ,$apply 和 $digest --- 理解数据绑定过程
    GMT时间
  • 原文地址:https://www.cnblogs.com/fangxinyu/p/9304669.html
Copyright © 2020-2023  润新知