随笔分类 - iOS-UI
摘要:https://xiaozhuanlan.com/topic/9273604158 先来张渲染的流程图: 这张图其实有很多误导,我的更改如下: 可以看到整个流程是一个pipeline(一次pipeline要跨越三帧)形式的,下面对每个步骤都做一个解释: 1.Handle Events: 处理事件,比
阅读全文
摘要:一、一条业务pipeline: 一个连接核心:coreanimation 二、两个进程: 1、app进程; 2、render进程; 首先,由 app 处理事件(Handle Events),如:用户的点击操作,在此过程中 app 可能需要更新 视图树,相应地,图层树 也会被更新。 其次,app 通过
阅读全文
摘要:翻译自:Demystifying iOS Layout 在你刚开始开发 iOS 应用时,最难避免或者是调试的就是和布局相关的问题。通常这种问题发生的原因就是对于 view 何时真正更新的错误理解。想理解 view 在何时是如何更新的,需要对 iOS RunLoop 和相关的 UIView 方法有深刻
阅读全文
摘要:iOS使用的是事件循环+标志更新(视图)机制。 Figure 1-7 UIKit interactions with your view objects The View Drawing Cycle The UIView class uses an on-demand drawing model f
阅读全文
摘要:在 iOS 系统中,图像内容展示到屏幕的过程需要 CPU 和 GPU 共同参与。 CPU 负责计算显示内容,比如视图的创建、布局计算、图片解码、文本绘制等。 随后 CPU 会将计算好的内容提交到 GPU 去,由 GPU 进行变换、合成、渲染。 之后 GPU 会把渲染结果提交到帧缓冲区去,等待下一次
阅读全文
摘要:GPU的主要工作:图像合成、图形操作 gpu不产生图片, 只表达和处理图片、图形;
阅读全文
摘要:http://chuquan.me/2018/09/25/ios-graphics-render-principle/ 通过 图形渲染原理 一文,大致能够了解图形渲染过程中硬件相关的原理。本文将进一步介绍 iOS 开发过程中图形渲染原理。 图形渲染技术栈 下图所示为 iOS App 的图形渲染技术栈
阅读全文
摘要:理解的核心是理清:application、render server、opengl、core animation、gpu、显示器的关系。 本文将从 OpenGL 的角度结合 Apple 官方给出的部分资料,介绍 iOS Rendering Process 的概念及其整个底层渲染管道的各个流程。 相信
阅读全文
摘要:Core Animation Pipeline 流水线 在 iOS上,动画和视图的渲染其实是在另外一个进程做的(下面我们叫这个进程 render server),在 iOS 5 以前这个进程叫 SpringBoard,在 iOS 6 之后叫 BackBoard。 显示逻辑 1、CoreAnimati
阅读全文
摘要:透明度与图层混合相关,影响到图片绘制的效率。 hidden 此属性为 BOOL 值,用来表示 UIView 是否隐藏。关于隐藏大家都知道就是让 UIView 不显示而已,但是需要注意的是: 当前 UIView 的所有 subview 也会被隐藏,忽略 subview 的 hidden属性。UIVie
阅读全文
摘要:So, shouldRasterize will not affect the green/red you see using Instruments. In order to have everything green, you'll need to not use transparency an
阅读全文
摘要:Core Animation是对OpenGL ES的Objective-C封装,具有与OpenGL ES几乎等价的高性能,却隐藏了OpenGL ES的复杂性。 https://www.cnblogs.com/feng9exe/p/6723056.html https://www.cnblogs.co
阅读全文
摘要:重开一个环境(内存、资源、上下文)来完成(部分)图片的绘制 指的是GPU在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作 意为离屏渲染,指的是GPU在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作。 红色代表GPU需要做额外的工作来渲染View,绿色代表GPU无需做额外的工作来处理bitmap。 U
阅读全文
摘要:卡顿产生的原因和解决方案 在 VSync 信号到来后,系统图形服务会通过 CADisplayLink 等机制通知 App,App 主线程开始在 CPU 中计算显示内容,比如视图的创建、布局计算、图片解码、文本绘制等。随后 CPU 会将计算好的内容提交到 GPU 去,由 GPU 进行变换、合成、渲染。
阅读全文
摘要:DTCoreText 、WKWebView 、UIWebView的比较 HTML->View 数据解析: WebCore:排版引擎核心,WebCore包含主要以下模块:Loader, Parser(DOM,Render), Layout,Paint。 是脚本语言,需要逐句解析出来,然而DOM/CSS
阅读全文
摘要:automaticallyAdjustsScrollViewInsets:在导航栏透明时用到 In your viewDidLoad method, add if([self respondsToSelector:@selector(edgesForExtendedLayout)]) self.ed
阅读全文
摘要:https://my.oschina.net/w11h22j33/blog/208574 关于UIView的Layer,IOS提供了三个方法: 1、layoutSubviews 在iOS5.1和之前的版本,此方法的缺省实现不会做任何事情(实现为空),iOS5.1之后(iOS6开始)的版本,此方法的缺
阅读全文
摘要:[译]Android view 测量布局和绘制的流程 原文链接 创造优秀的用户体验是我们开发者的主要目标之一.为此, 我们首先要了解系统是如何工作的, 这样我们才可以更好的与系统配合, 从它的优点中获益, 规避它的缺陷. 之前关于Android渲染过程的文章 这次我们主要关注Measure/Lay
阅读全文
摘要:https://developer.apple.com/library/archive/documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/WindowsandViews/WindowsandViews.html#//apple_ref/doc
阅读全文
摘要:由于CoreGraphics框架有太多的API,对于初次接触或者对该框架不是十分了解的人,在绘图时,对API的选择会感到有些迷茫,甚至会觉得iOS的图形绘制有些繁琐。因此,本文主要介绍一下iOS的绘图方法和分析一下CoreGraphics框架的绘图原理。 一、绘图系统简介 iOS的绘图框架有多种,我
阅读全文