1818#pragma mark -
1919#pragma mark ASCellNode
2020
21+ @interface ASCellNode ()
22+ {
23+ ASDisplayNodeDidLoadBlock _nodeLoadedBlock;
24+ UIViewController *_viewController;
25+ ASDisplayNode *_viewControllerNode;
26+ }
27+
28+ @end
29+
2130@implementation ASCellNode
2231
2332- (instancetype )init
@@ -32,6 +41,49 @@ - (instancetype)init
3241 return self;
3342}
3443
44+ - (instancetype )initWithViewControllerBlock : (ASDisplayNodeViewControllerBlock)viewControllerBlock didLoadBlock : (ASDisplayNodeDidLoadBlock)didLoadBlock
45+ {
46+ if (!(self = [super init ]))
47+ return nil ;
48+
49+ ASDisplayNodeAssertNotNil (viewControllerBlock, @" should initialize with a valid block that returns a UIViewController" );
50+
51+ if (viewControllerBlock) {
52+ _viewController = viewControllerBlock ();
53+
54+ __weak UIViewController *weakViewController = _viewController;
55+ _viewControllerNode = [[ASDisplayNode alloc ] initWithViewBlock: ^UIView *{
56+ return weakViewController.view ;
57+ } didLoadBlock: didLoadBlock];
58+
59+ [self addSubnode: _viewControllerNode];
60+ _nodeLoadedBlock = didLoadBlock;
61+ }
62+
63+ return self;
64+ }
65+
66+ // - (ASLayoutSpec *)layoutSpecThatFits:(ASSizeRange)constrainedSize
67+ // {
68+ // _viewControllerNode.frame = (CGRect){{0,0}, constrainedSize.max};
69+ // NSLog(@"%f %f", constrainedSize.max.width, constrainedSize.max.height);
70+ // return [super layoutSpecThatFits:constrainedSize];
71+ // }
72+
73+ - (void )layout
74+ {
75+ [super layout ];
76+
77+ _viewControllerNode.frame = self.bounds ;
78+ }
79+
80+ - (void )layoutDidFinish
81+ {
82+ [super layoutDidFinish ];
83+
84+ _viewControllerNode.frame = self.bounds ;
85+ }
86+
3587- (instancetype )initWithLayerBlock : (ASDisplayNodeLayerBlock)viewBlock didLoadBlock : (ASDisplayNodeDidLoadBlock)didLoadBlock
3688{
3789 ASDisplayNodeAssertNotSupported ();
@@ -98,7 +150,8 @@ - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
98150#pragma mark -
99151#pragma mark ASTextCellNode
100152
101- @interface ASTextCellNode () {
153+ @interface ASTextCellNode ()
154+ {
102155 NSString *_text;
103156 ASTextNode *_textNode;
104157}
0 commit comments