Swift学徒

AsyncDisplayKit 教程(2):ASDisplayNode

ASDisplayNode

ASDisplayNode 是 ASDK 的核心类。

我们知道 UIView 是对 CALayer 的一个封装,添加了触摸事件的处理以及其他功能。

ASDisplayNode 也使用了这种抽象。你可以认为 Node 包含了一个 View,就像 View 包含了一个 Layer。

Node 可以在后台队列中创建和配置,默认情况使用异步渲染。

Node 的 API 和 UIView 的难以置信的相似:所有的 View 属性都可以在 node 上找到相同的。你还可访问底层的 view 或 layer,就像你可以访问 UIView的 .layer 一样。

Node Containers

Node 与四个容器类中的一个结合使用时,就产生魔法般的性能提升。

这四个类包含:

  • ASViewController: UIViewController 子类,允许你创建节点并进行管理。
  • ASCollectionNode 和 ASTableNode: UICollectionView 和 UITableView 对应的 Node 类。
  • ASPagerNode: ASCollectionNode 子类,和 UIPageViewController 相比,提供了很棒的 swiping 性能。

真正的魔法来自于: ASRangeController,这 4 个类都会通过它来影响所包含的 node 的行为。这个后面再讲。


万恶胖为首 wechat
关注公众号(ID:SwiftBetter),进一步探讨交流。