美文网首页
UI绘制原理和异步绘制

UI绘制原理和异步绘制

作者: 修_没毅力没心情 | 来源:发表于2020-02-25 11:53 被阅读0次
UIView绘制原理

调用setNeedsDispaly时候,实际上是这个view的layer调用setNeedsDispaly方法,之后相当于在这个layer上打上一个脏标记,然后并没有立即发生当前视图的绘制工作,而是在当前runloop快要结束的时候调用CALayer的display方法,进入到当前视图真正的绘制工作的流程当中。

原因是要减少绘制次数,提升性能,所以要在当前runloop快要结束的时候调用CALayer的display方法。

然后代理必须至少实现两个方法的其中一个,如果都实现,则调用displayLayer方法。

系统绘制流程

原理图中的系统绘制流程就如上图所示,图中的backing store可以理解为要上传的位图,由CALayer传给GPU。

关于如何实现异步绘制。

我们基于图1中的[layer.delegate displayLayer:]方法有以下两点:

-代理负责生成对应的bitmap。

-设置该bitmap作为layer.contents属性的值。

异步绘制原理时序图

通过上面的时序图来了解异步绘制。

通过子线程的切换,借助global queue,在子线程中进行bitmap的绘制,此时主线程可以做其他的工作。等子线程绘制位图完毕,再回到主队列中提交位图,设置给CALayer的contents属性,完成一个空间的异步绘制过程。

相关文章

  • 常见面试问题概括

    UI视图相关 *TableView重用机制? 答: *视图绘制原理?如何实现异步绘制? 答:UIView绘制原理 ...

  • iOS体系

    UI视图 UITableView 事件传递&视图响应 图像显示原理 UI卡顿、掉帧 UI绘制原理/异步绘制 离屏渲...

  • UI绘制原理和异步绘制

    UIView的绘制原理 说道UIView的绘制原理,我们先来看一张图: 从上面的图,我们可以看到: 1.先调用[...

  • UI绘制原理和异步绘制

    调用setNeedsDispaly时候,实际上是这个view的layer调用setNeedsDispaly方法,之...

  • UI绘制原理和异步绘制

    通过一副流程图看UI视图的绘制步骤:当调用[UIView setNeedsDisplay]之后,实际上并没有立马发...

  • # UI视图相关

    UI视图相关 UITableView 事件传递&视图响应 图像显示原理 卡顿&掉帧 绘制原理&异步绘制 离屏渲染 ...

  • UI视图

    UI视图考点: UITableView相关 事件传递&视图响应 图像显示原理 卡顿&掉帧 绘制原理&异步绘制 离屏渲染

  • iOS面试必看

    01UI视图 事件传递机制UI绘制原理异步绘制原理流式页面的性能优化离屏渲染 02OC语言 KVOKVC分类关联对...

  • UIView绘制原理&异步绘制

    绘制原理 异步绘制流程

  • 2021-06-19

    UI试图相关问题 大纲 UITableView 相关 事件传递&视图响应 图像显示原理 卡顿&掉帧 异步绘制&绘制...

网友评论

      本文标题:UI绘制原理和异步绘制

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