| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> UI视图相关面试问题汇总 -> 正文阅读 |
|
[移动开发]UI视图相关面试问题汇总 |
1:事件传递与视图响应链
1.1:事件传递流程如下1.2: hitTest:withEvent:系统实现1.3: 视图事件响应- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event - (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event - (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event 传递当前视图-传递到父视图-UIWindows-UIApplication-如果在找不到就忽视掉 2.0:滑动优化方案和思路CPU: ? ? ? ? 对象创建,调整,销毁可以放到子线程去做,这样可以节省一部分cpu的时间 ? ? ? ? 预排版(布局计算,文本计算)可以放到子线程去做,这样主线程就会有更多时间去响应用户的交互 ? ? ? ? 预渲染(文本等异步绘制,图片编解码) GPU: ? ? ? ? 纹理渲染 ? ? ? ? 视图混合 3.0:UIView的绘制原理3.1:系统绘制流程 3.2:异步绘制 [layer.delegate displayLayer:] ? ? ? ? 代理负责生成对应的bitmat ? ? ? ? 设置该bitmap作为layer.contents属性的值 3.3:UIView和CALayer之间的关系是怎样的? UIView负责事件传递和相应的 CALayer负责视图显示工作 用到了6大设计模式中的单一职责原则 4:离屏渲染?? ? ? ? 在屏渲染,指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区进行 ????????离屏渲染,指的是GPU在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作? ? ? 4.1:什么是离屏渲染 ?当我们指定了UI视图的某些属性,标记为它在预合成之前不能用于当前屏幕上面直接显示的时候就会触发离屏渲染,而离屏渲染在GPU层面指的是GPU在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作 4.2:何时触发?? ? ? ? 圆角(当和maskToBounds一起使用时) ? ? ? ? 图层蒙版 ? ? ? ? 阴影 ? ? ? ? 光栅化 4.3:为何要避免?????????离屏渲染会创建新的渲染缓冲区,增加开销。 ????????因为有多通道渲染管线最终需要把多通道渲染结果最终的合成,那需要上下文的切换,就会产生GPU额外的开销 ????????总结:在触发离屏渲染的时候,会增加GPU的工作量,很有可能导致CPU和GPU加起来的总耗时超出16.7ms,那么可能就会导致UI的卡顿和掉帧,所以我们需要避免离屏渲染。 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 16:53:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |