美文网首页
471, UITableview的优化方法(缓存高度,异步绘制,

471, UITableview的优化方法(缓存高度,异步绘制,

作者: 枫叶1234 | 来源:发表于2021-02-06 09:57 被阅读0次
  1. 缓存高度,提前计算好 cell 的高度和布局:iOS8后,会边滑动边调用heightForRowAtIndexPath:这个方法; 如果把计算cell高度的方法写在这儿, 不仅每次都会调用计算方法, 而且重复滑动的话, 还会再次计算; 所以我们一般在网络请求结束后,更新界面之前就把每个 cell 的高度算好,缓存到相对应的 model 中。
  2. 异步绘制,在Cell上添加系统控件的时候,实质上系统都需要调用底层的接口进行绘制,当我们大量添加控件时,对资源的开销也会很大,所以我们可以索性直接绘制,提高效率
  3. 减少层级,减少SubViews的数量, 在滑动的列表上,多层次的view会导致帧数的下降。例如: 绘制 cell 不建议使用 UIView,建议使用 CALayer。从形式来说:UIView 的绘制是建立在 CoreGraphic 上的,使用的是 CPU。CALayer 使用的是 Core Animation,CPU,GPU 通吃,由系统决定使用哪个。View的绘制使用的是自下向上的一层一层的绘制,然后渲染。Layer处理的是 Texure,利用 GPU 的 Texture Cache 和独立的浮点数计算单元加速 纹理 的处理。
  4. hide显示,尽量少用addView给Cell动态添加View,可以初始化时就添加,然后通过hide来控制是否显示
  5. 避免离屏渲染:少用圆角,可用贝塞尔曲线画
  6. 正确地使用UITableViewCell的重用机制:多种类型的cell,能不复用就不复用。
  7. 避免阻塞主线程:子线程计算复杂的数学问题
  8. 按需加载:用懒加载
  9. 尽可能重用开销比较大的对象 比如:NSDateFormatter
  10. 尽量减少计算的复杂度
  11. 用轻量级的对象,UIView是 CALayer 的代理,layer本身并不能响应事件,因为layer是直接继承自NSObject,不具备处理事件的能力。而 UIView 是继承了UIResponder 的,当只是展示时用 layer 代替UIView

相关文章

  • 15. UITableview的优化方法

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

  • 2017年5月iOS招人心得答案总结(高级篇)

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

  • 2021 iOS高级面试题及答案

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

  • iOS面试题 — 高级篇

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

  • 2019年年初iOS招人心得笔记 答案 (四)

    1、UITableview的优化方法(缓存高度,异步绘制,减少层级,hide,避免离屏渲染) 参考链接:https...

  • 471, UITableview的优化方法(缓存高度,异步绘制,

    缓存高度,提前计算好 cell 的高度和布局:iOS8后,会边滑动边调用heightForRowAtIndexPa...

  • 1.1、iOS面试题之ui

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

  • 高级

    1、UITableview的优化方法(缓存高度,异步绘制,减少层级,hide,避免离屏渲染) 2、用过运行时吗,用...

  • iOS面试题

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

  • UITableview的优化

    优化方法:(缓存高度,异步绘制,减少层级,hide,避免离屏渲染) 缓存高度 提前计算好cell的高度和布局 异步...

网友评论

      本文标题:471, UITableview的优化方法(缓存高度,异步绘制,

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