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
替代 UITalbeViewCell
和UICollectionCell
。其被用于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动画