iOS面试剖析

UI相关知识

2019-10-21  本文已影响0人  huoshe2019
标题

一、UITableView相关

1.1、重用机制

代码层

重用机制

重用示意图

重用示意图

1.2、数据源同步

资源竞争

解决方案

二、事件传递与视图响应链

见文章事件传递与视图响应链

三、图像显示原理

总体图 分工

3.1、CPU工作

CPU工作

3.2、GPU渲染管线

GPU渲染管线

四、UI卡顿&掉帧

4.1、UI卡顿&掉帧的原因

问题1:UI卡顿&掉帧的原因是什么?

UI卡顿&掉帧原因

解释

4.2、滑动优化方案

4.2.1、CPU

CPU
主要是将上面工作,全部放到子线程中去做,节省CPU时间。

4.2.2、GPU

GPU

五、UI绘制原理&异步绘制

5.1、绘制原理步骤

绘制原理步骤

5.2、系统绘制流程

系统绘制流程

5.3、异步绘制

异步绘制

异步绘制流程时序图

时序图

问题2:什么是异步绘制?

见上图解。
简单总结:

六、离屏渲染

6.1、概念

概念

问题3:什么是离屏渲染?

问题4:离屏渲染何时会触发?

离屏渲染

问题5:为何要避免离屏渲染?

在触发离屏渲染的时候,会触发GPU工作量。而增加了GPU的工作量,有可能导致CPU + GPU耗时超过16.7ms,从而导致卡顿。

七、UI面试图总结

问题6:系统的UI事件传递机制是怎样的?

从事件传递流程回答,着重说hitTest:withEvent:pointInside:withEvent:

传递机制

问题7:使得UITableView滚动更流畅的方案和思路有哪些?

问题8:UIView与CALayer之间的关系是怎样的?

上一篇下一篇

猜你喜欢

热点阅读