Node

Node Containers

  • ASCollectionNode 类似UIKit中的UICollectionView
  • ASPagerNode 类似UIKit中的UIPageViewController
  • ASTableNode 类似UIKit中的UITableView
  • ASViewController 类似UIKit中的UIViewController
  • ASNavigationController 类似UIKit中的UINavigationController,遵循了ASVisibility协议
  • ASTabBarController 类似UIKit中UITabBarController 遵循了ASVisibility协议

节点容器作用:

节点容器自动福安里其子节点实现智能预加载,这意味着节点所有布局计算、数据读取,解码和渲染都将会异步完成,这也是为什么建议将节点放到节点容器中使用的原因。
而容器外的node只会在屏幕出现时才开始渲染,类似UIKit的做法,这会导致性能下降和内容闪烁。

Node Subclasses

使用node代替UIKit组件的一个关键优势就是 所有的节点都在主线程之外布局和显示,以便主线程可以立即响应用户事件

ASDisplayNode 替代UIView ,其为根node,其它node均继承自其

ASCellNode 替代 UITalbeViewCellUICollectionCell。其被用于ASTableNode、ASCollectionNode、ASPageNode

ASScrollNode 替代 UIScrollView 此node用于创建包含其他节点的自定义可滚动区域

ASEditableTextNode 替代 UITextView

ASTextNode 替代 UILabel

ASImageNode、 ASNetworkImageNode、 ASMultiplexImageNode 替代 UIImageView

ASVideoNode 替代 AVPlayerLayer
ASVideoPlayerNode 替代 UIMoviePlayer

ASControlNode 替代 UIControl

ASButtonNode 替代 UIButton

ASMapNode 替代 MKMapView

Texture的node相比UIKit的组件通常提供了更加便利的功能。例如,ASNetworkImageNode执行自动加载和缓存管理,甚至支持渐进式jpeg和GIF动画

Node继承关系