ASDK(texture)

2018-06-08  本文已影响0人  陈_振

图片来源:
raywenderlich

IMG_0964.jpg

主线程中一些比较耗时的操作:

介绍ASDisplayNode

ASDisplayNode是对UIView的封装,类似于UIView和CALayer的关系。和UIView不同的是,Node默认在后台队列并发进行渲染。

Node容器类

Node真正发挥功效是和以下四个容器类结合的时候:

总结方法-tableNode:nodeBlockForRowAtIndexPath:

  1. ASCellNode类似于UITableViewCell,有一点需要去注意,类似于-tableView:cellForRowAtIndexPath:的方法-tableNode:nodeBlockForRowAtIndexPath:返回值是一个block-ASCellNodeBlock。这是因为ASTableNode内容维护所有的cell,并且为indexPath返回一个block,当它准备好的时候,它能并发初始化所有的Cell。
  2. block中的返回值必须是ASCellNode

总结方法-tableView:

  1. 这个方法取代tableView:heightForRowAtIndexPath
  2. 在ASDK中,所有的ASCellNode负责定义他们自己的size。在该方法中你可以可选的定义一个最小和最大的size为你的cell。

ASRangeController

每一个被这个容器包含的node会有以下三种状态:

Node接口状态(interfaceState)回调

这些node的状态是如何正确的协调工作的?

每个node都有一个interfaceState的属性,所有的node被ASRangeController统一协调更新。

幸运的是我们不需要直接操作node的interfaceState属性,我们只需在 interface state 回调中做出响应即可。

给Node命名

为了在滚动过程中观察每个node的状态,我们可以通过如下方法给node命名:

-tableNode:nodeBlockForRowAtIndexPath:中添加如下方法d

node.debugName = [NSString stringWithFormat:@"cell %zd", indexPath.row];

AsyncDisplayKit 2.0教程:入门

AsyncDisplayKit 2.0教程:自动布局

texture官网
texture翻译
预加载与智能预加载(iOS)

iOS 开发一定要尝试的 Texture(ASDK)

使用 ASDK 性能调优 – 提升 iOS 界面的渲染性能

ASDK源码剖析

上一篇下一篇

猜你喜欢

热点阅读