zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

iOS 渲染相关面试题

ios面试题 相关 渲染
2023-09-27 14:25:56 时间
1、【高频面试题】屏幕卡顿的原因

主要有以下三种原因


CPU和GPU在渲染的流水线中耗时过长 导致从缓存区获取位图显示时 下一帧的数据还没有准备好 获取的仍是上一帧的数据 产生掉帧现象 掉帧就会导致屏幕卡顿苹果官方针对屏幕撕裂问题 目前一直使用的方案是垂直同步 双缓存区 可以从根本上防止和解决屏幕撕裂 但是同时也导致了新的问题掉帧。虽然我们采用了双缓存区 但是我们并不能解决CPU和GPU处理图形图像的速度问题 导致屏幕在接收到垂直信号时 数据尚未准备好 缓存区仍是上一帧的数据 因此导致掉帧在垂直同步 双缓存区的方案上 再次进行优化 将双缓存区 改为三缓存区 这样其实也并不能从根本上解决掉帧的问题 只是比双缓存区掉帧的概率小了很多 仍有掉帧的可能性 对于用户而言 可能是无感知的。


2、【面试题】UIView和CALayer的关系UIView基于UIKit框架 可以处理用户触摸事件 并管理子视图CALayer基于CoreAnimation 而CoreAnimation是基于QuartzCode的。所以CALayer只负责显示 不能处理用户的触摸事件从父类来说 CALayer继承的是NSObject 而UIView是直接继承自UIResponder的 所以UIVIew相比CALayer而言 只是多了事件处理功能 从底层来说 UIView属于UIKit的组件 而UIKit的组件到最后都会被分解成layer 存储到图层树中在应用层面来说 需要与用户交互时 使用UIView 不需要交互时 使用两者都可以



二、屏幕卡顿 及 iOS中的渲染流程解析 屏幕卡顿是指图形图像的在显示时出现了撕裂(即图片错位显示)、掉帧(重复显示同一帧数据)等问题,导致用户能直观的从屏幕上看到的一种异常现象
iOS 和 Mac OS X 的字符串渲染 为了简单起见,我们先看看UIKit在字符串渲染方面为我们提供了哪些控件。之后我们将讨论一下对于字符串的渲染, iOS 和 OS X 系统中有哪些相似和不同。 UIKit 提供了很多可以在屏幕上显示和编辑文本的类。每一个类都是为特定使用情况准备的,所以为了避免不必要的问题,为你手上的任务挑选正确的工具是非常重要的。
iOS 7 跳过的一个坑又掉里了 - 图片渲染模式 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循“署名-非商业用途-保持一致”创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。
利用预渲染解决优化性能问题IOS http://www.keakon.net/2011/07/26/%E5%88%A9%E7%94%A8%E9%A2%84%E6%B8%B2%E6%9F%93%E5%8A%A0%E9%80%9FiOS%E8%AE%BE%E5%A4%87%E7%9A%84%E5%9B%BE%E5%83%8F%E6%98...