Texture提供以下多种节点类型.
使用节点替代UIKit组件的一个关键优势是,所有节点都是在主线程之外进行布局和显示.所以主线程能够立即响应用户的交互事件.
Texture节点 | UIKit对应类型 |
---|---|
ASDisplayNode |
UIView , ASDisplayNode是基类,其他所有类型的节点都继承于它 |
ASCellNode |
UITableViewCell & UICollectionViewCell , ASCellNode可以在ASTableNode,ASCollectionNode,ASPagerNode中使用 |
ASScrollNode |
UIScrollView , ASScrollNode通常用来构建自定义可滑动的区域(内部可承载其他节点,是节点容器之一) |
ASEditableTextNode |
UITextView |
ASTextNode |
UILabel |
ASImageNode |
UIImage |
ASNetworkImageNode |
UIImage |
ASMultiplexImageNode |
UIImage |
ASVideoNode |
AVPlayerLayer |
ASVideoPlayerNode |
UIMoviePlayer |
ASControlNode |
UIControl |
ASButtonNode |
UIButton |
ASMapNode |
MKMapView |
尽管提供了与UIKit组件大致相当的功能,但一般来说,Texture节点提供了更多高级的特性和便利.
例如ASNetworkImageNode
具备自动加载图片和缓存管理的功能,甚至支持渐进式jpeg和播放gif动画.
AsyncDisplayKitOverview这个示例app提供了上面列出的每种节点的基本实现.
节点继承体系
所有Texture节点均继承自ASDisplayNode.
下面高亮的节点都是UIKit元素的同步封装.比如ASScrollNode
封装了UIScrollView
, ASCollectionNode
封装了UICollectionView
.liveMapMode
里的ASMapNode
是 UIMapView
的同步封装.