其他分享
首页 > 其他分享> > iOS 高级面试--UI视图

iOS 高级面试--UI视图

作者:互联网

UlTableView 相关


一,重用机制

1.iOS如何实现cell的重用机制?

在这里插入图片描述

2.如何手动实现重用机制?

二,数据源同步问题

1.数据源同步解决方案

a,并发访问、数据拷贝

事件传递&视图相应


一,UIView和CALayer

1.UIView和CALayer的关系和区别?

a.关系
在这里插入图片描述

2、为什么UIView负责触摸事件,CALayer负责显示?

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

1、当点击View C2区域,系统是如何找到响应视图的呢?

在这里插入图片描述
a.事件传递的流程
在这里插入图片描述

2,如何只让方形图片的圆形区域接受事件响应?

在这里插入图片描述

3,视图响应流程

a,事件的响应是通过响应链来传递的。
在这里插入图片描述

图像显示原理


一、图像显示流程

在这里插入图片描述

二,UI视图显示过程

在这里插入图片描述

三、CPU工作过程

在这里插入图片描述

1,Layout

2,Display

3,Prepare

4,Commit

四、GPU渲染管线过程

在这里插入图片描述

卡顿&掉帧的原因


在这里插入图片描述

一,滑动优化方案

1、CPU

2、GPU

绘制原理&异步绘制


一,UIView的绘制原理

在这里插入图片描述
当调用setNeedsDispaly函数,实际是调用view.layersetNeedsDispaly函数。
该函数会将layer标记,在runloop即将结束时,调用CALayer display函数,进入当前视图的真正绘制。
CALayer display函数中,会判断它的代理是否响应displayLayer:函数,如果YES,则可进行异步绘制,否则进入系统绘制流程

二,系统的绘制流程

在这里插入图片描述

三,异步绘制

离屏渲染


一,什么场景会触发离屏渲染?

二,为什么要避免离屏渲染?

UI视图面试总结


源文作者:逍遥归来
链接:https://juejin.cn/post/6899772676794122253

标签:渲染,--,iOS,视图,CALayer,GPU,绘制,UIView
来源: https://blog.csdn.net/qq_45765503/article/details/110541521