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之间的桥梁