zoukankan      html  css  js  c++  java
  • TableVie优化方法和优化机制

    1,UITableview的优化方法(缓存高度,异步绘制,减少层级,hide,避免离屏渲染)

    (1)缓存高度:当我们创建frame模型的时候,计算出来cell的高度的时候,我们可以将cell的高度缓存到字典里面,以cell的indexpath和Identifier作为为key。

    异步绘制

    在Cell上添加系统控件的时候,实质上系统都需要调用底层的接口进行绘制,当我们大量添加控件时,对资源的开销也会很大,所以我们可以索性直接绘制,提高效率。

    (2)减少层级

    减少SubViews的数量, 在滑动的列表上,多层次的view会导致帧数的下降。
    例如: 绘制cell 不建议使用UIView,建议使用CALayer。

     

    (3)Hide(显示隐藏)

    尽量少用addView给Cell动态添加View,可以初始化时就添加,然后通过hide来控制是否显示

    (4)避免离屏渲染

    为了保证TableView的流畅,当快速滑动的时候,cell必须被快速的渲染出来。所以cell渲染的速度必须快。如何提高cell的渲染速度呢?

    • 当有图像时,预渲染图像,在bitmap context先将其画一遍,导出成UIImage对象,然后再绘制到屏幕,这会大大提高渲染速度。具体内容可以自行查找“利用预渲染加速显示iOS图像”相关资料。
    • 渲染最好时的操作之一就是混合(blending)了,所以我们不要使用透明背景,将cell的opaque值设为Yes,背景色不要使用clearColor,尽量不要使用阴影渐变等
    • 由于混合操作是使用GPU来执行,我们可以用CPU来渲染,这样混合操作就不再执行。可以在UIView的drawRect方法中自定义绘制。

    (5)还有其他的优化方法:

      • 正确地使用UITableViewCell的重用机制
      • 避免阻塞主线程
      • 按需加载
      • 尽可能重用开销比较大的对象
      • 尽量减少计算的复杂度
  • 相关阅读:
    【乱侃】How do they look them ?
    【softeware】Messy code,some bug of Youdao notebook in EN win7
    【随谈】designing the login page of our project
    【web】Ad in security code, making good use of resource
    SQL数据库内存设置篇
    关系数据库的查询优化策略
    利用SQL未公开的存储过程实现分页
    sql语句总结
    sql中使用cmd命令注销登录用户
    SQLServer 分页存储过程
  • 原文地址:https://www.cnblogs.com/FZP5/p/10019242.html
Copyright © 2011-2022 走看看