02.ASDK整理:自定义子类相关说明

自定义子类相关说明,以下内容摘自AsyncDisplayKit官方文档个人翻译

写一个node的子类,很像写一个UIView的子类,这有几条准则需要遵守,来确保你能够充分发挥这个框架的潜力,确保你的节点正常工作。

基本重载方法
-init

通常情况下,你都会写一些init方法,包括,调用[super init],然后设置一些自定义的属性。这里需要记住的尤其重要的一点,你写的(node的)init方法必须能被任何的队列和线程调用,所以尤其要注意的一点就是,在init方法里确保不要初始化任何UIKit的对象

-didLoad

这个方法很像UIViewController的-viewDidLoad,这个时间点支持视图已经被加载完毕,此时可以保证是主线程,因此,你可以在这个时机,设置UIKit相关对象。

layoutSpecThatFits

这个方法就是用来建立布局规则对象,产生节点大小以及所有子节点大小的地方,你创建的布局规则对象一直持续到这个方法返回的时间点,经过了这个时间点后,它就不可变了。尤其重要要记住的一点事,千万不要缓存布局规则对象,当你以后需要他的时候,请重新创建。

layout

在这个方法里调用super之后,布局规则对象会把所有的子节点都计算并且定位好,所以这个时间点是你手动进行布局所有子view的时机。或许更有用的是,有时候你想手动布局,但并不太容易创建一个布局规则对象,或者有时候你不想等所有子节点布局完毕,而只是很简单的手动设置frame,如果是这样的话,就在这个方法里写。

你可能感兴趣的:(02.ASDK整理:自定义子类相关说明)