iOS 动画实现原理是什么?

回答·4
最热
最新
  • 详情关注 CALayer 类,modelTree 和 presentTree,按照动画提交的参数,以及 TimingFuction 指定的插值算法,系统就可以计算出每一帧的 CALayer 模型参数,存储在 presentTree 上,然后把这个层模型提交给渲染系统 Quartz 完成渲染,Quartz 下层会调用 GPU 的渲染层接口,以前是 OpenGLES,现在是应该改用了苹果自己的 Meta,更底层的就是这些渲染引擎跟 GPU 驱动交互了吧……超出了我的知识范围……
  • 在 runloop 每次迭代的过程中,会调用即将进入休眠的 observer callback,core animation 就是其中一个 observer,在这个回调中,core animation 会将所有动画数据打包发送到运行于另一个进程中的 server 端,server 端解包之后根据动画数据计算关键帧,然后根据曲线方程进行插值,之后每一帧就根据插值来渲染动画标的,上面有个回答说的不对,core animation 的 server 端程序会直接使用 metal 或 OpenGL ES 渲染图形,不会使用 core graphics
  • ios 小白的回答,大概率是错误的回答;但是还是简单打 2 个字 多数采用关键帧动画的实现方式 给定一个动画对象,计算机计算出动画对象关于时间的变化信息展示在画布上。 周期性的绘制,周期的比如 timer;displaylink;绘制的内容可以自己设定,drawrect or 更改 layer 的某些参数。
  • 动画就是在每次垂直同步信号时提供动态的纹理