iOS UI 优化 - 总纲

iOS UI 优化博文大纲

2019 年开年第一篇博文,今天先起个头。

今年第一个主题是关于 UI 界面实现原理,UI 目前实现主要方式在其实现上相关缺陷。开始从 Core Animation 框架总结以及实现方式上讲解,然后从 Core GraphicsCore Iamge 在绘制层面三者如何把 UIKit 控件如何实现绘制交由 OpenGL ES | Metal 来实现每一帧绘制。

最后分析 FB 开源的框架 ASDKYYKit 实现 UI 优化方式,对 Core Text 进行最后封装来结束 UI 专题。

iOS UI 架构图

iOS UI Strcture.png

Core Animation 大纲

Core Animation API 层次 & 作用
1、APP 结构层次 Core Animation a、 作为 UIKitAppKit 内容实际绘制主要承担的载体,为具体在屏幕上控件内容绘制,布局以及提供隐式和显示动画提供优雅的 API 接口。b、 作为硬件绘制输入把需要显示具体内容传入 GPU 生成纹理在屏幕上进行渲染。
2、作用 Core Animation a、 通过 CATypeLayer 类族显示效果,位置布局为 UIKit 层提供底层绘制实现。b、屏幕上直接与渲染硬件直接进行内容绘制,实现各种酷炫的效果以及更加高效绘制。c、 通过 CATypeAnimation 及其属性 CATypeTiming 实现各种动画效果类型。d、UIKitAppKit 代码块动画代理对象,提供具体实现支持。在 iOS 的主要职能是为 UIKit 框架在 APP UI 控件实现基础上的绘制。
Core Animation.png

注:参考资料会在 iOS UI 优化 - Core Animation 最后给出:
Core Animation 中可以看到在 ApplicationHandle Events 处理手势原理实际就是我们响应链处理过程。
响应链
iOS 空间绘制原理

Core Graphics 大纲

Core Graphics API 层次 & 作用
1、APP 结构层次 Core Graphics a、 作为基于 Quartz 绘图引擎来实现在 iOSOS X 2D 图形绘制功能,接口实现是基于 C 不符合 iOSARC 内存管理方式需要进行手动管理其内存。 b、 作为 CA 层具体显示内容 CATypeLayer 层实际绘制执行者和 OpenGL或者Metal 一起承担起界面具体的绘制工作。
2、APP 作用 Core Graphics a、 通过提供基础的 API 接口来实现控件在 UI 层面布局,色彩填充,画布绘制等具体的绘制实现。b、 通过针对不同的绘制对象:WindowCALayerBitmapPDFPrinter 来生成对应的 Context 实现具体内容的绘制生成可视化的效果展示在屏幕上。 c、 在文本绘制的过程中我猜测使用 PDF 文档解析的功能,为 Core Text 提供实际的计算,依据 Quartz 使用轮廓周围像素显示来实现抗锯齿完美展现文本显示。

Core Text 大纲

Core Text API 层次 & 作用
1、APP 结构层次 Core Text a、 作为基于 Core Graphics 封装实现,是 Apple 基础库中唯一一个处理字体绘制模块。b、iOS 7 之后在此基础之上实现的 Text Kit 实现跨 UIKitAppKit 来作为文本绘制。
2、作用 Core Text a、 通过以 Core Text 为基础实现文字绘制 Text Kit 来实现富文本绘制,展示丰富多彩的文字效果。b、 提供后台绘制能力,在实际绘制过程中可以放在 Background Thread 来实现绘制工作。c、 在实现中可以通过 CTRunDelegate 来设置 CTRun 来实现图文混排来时更加丰富的效果。

Text Kit 实现逻辑

Text Kit.png

同时也会对本文进行在每一博文更新!!!

作者: JackJin Bai
第一次修改时间: 2019/1/6 20:37: 26
写于:广州市天河公园家里

你可能感兴趣的:(iOS UI 优化 - 总纲)