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
写于:广州市天河公园家里

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容