-
Notifications
You must be signed in to change notification settings - Fork 23
UI视图
FFur edited this page Aug 16, 2018
·
3 revisions
- 重用机制
- 数据同步
- Layout
- UI布局
- 文本计算
- Display
- 绘制(drawRect)
- Prepare
- 图片编解码
- Commit
- CoreAnimation对输出结果进行提交位图
一般页面滑动流程的效果是:60FPS, 16.7ms产生一帧的画面
- CPU
- 对象创建、调整、销毁
- 预排版(布局计算、文本计算)
- 预渲染(文本等异步绘制,图片编解码等)
- GPU
- 纹理渲染(圆角,阴影蒙层,触发离屏渲染)
- 视图混合(层级重叠)
[layer.delegate displayLayer:]
-
图层属性的混合体被指定为在未预合成之前不能直接在屏幕中绘制,所有就需要在屏幕外的上下文中渲染,即离屏渲染
-
指的是GPU在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作。
-
On-Screen Rendering
- 意为当前屏幕渲染,指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区中进行
-
Off- Screen Rendering
- 意为离屏渲染,指的是GPU在当前屏幕缓冲区以外新开辟一一个缓冲区进行渲染操作
- 圆角(当和mask ToBounds-起使用时)
- 图层蒙版
- 阴影
- 光栅化
离屏渲染增加GPU工作量,是的CPU和GPU工作耗时超出16.7ms,出发卡顿掉帧。
- 创建新的渲染缓冲区,增加内存开销,
- 上下文切换,多通道管线的合并
请参考:事件分发传递和响应链