Texture

学习自Texture官方文档

掘金[译] AsyncDisplayKit/Texture 官方文档

Texure的基本单元是node。ASDisplayNode是一个对UIView的抽象,而UIView还是CALayer的的上层抽象。

不同之处在于:
View只能在主线程使用,但是node是线程安全的: Node可以亦不会只,并且线程安全的。可以在异步线程中实例化和配置层级结构

一般程序以每秒60帧进行呈现是iOS的黄金标准.意味着主线程执行所有布局和绘图代码只有16毫秒,并且由于系统开销,如果布局绘图代码执行超过10ms就会引起掉帧

Texture允许我们将图像解码、文字调整和绘制等其它昂贵的UI操作,移到主线程外,保证主线程可以一直响应用户操作,等。

Node

UIView中的绝大多数方法,node都有其对应的映射。当UIViw和CALayer的方法名有冲突时,默认使用UIView的命名。(唯一例外的是 node使用position代替center)

可以再确保在主线程执行的基础上,调用node.view或者node.layer方法

Node Containers

当将Texture集成到项目中时,不能将Node直接添加到已有视图中,这样会导致节点在渲染时闪烁。

应该把节点添加到Node容器中,由Node容器负责管理这节点,可以将Node容器理解为UIKit和Texture之间的桥梁

Layout Engine