From 03bd1f4358955dd85a420330d85bf38a065054cd Mon Sep 17 00:00:00 2001 From: Levi McCallum Date: Tue, 27 Oct 2015 11:40:43 -0700 Subject: [PATCH] Expose ASViewController's constrained size for subclass customization --- AsyncDisplayKit/ASViewController.h | 9 +++++++++ AsyncDisplayKit/ASViewController.m | 12 +++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/AsyncDisplayKit/ASViewController.h b/AsyncDisplayKit/ASViewController.h index f617ed4c43..281a5d0e06 100644 --- a/AsyncDisplayKit/ASViewController.h +++ b/AsyncDisplayKit/ASViewController.h @@ -20,4 +20,13 @@ - (instancetype)initWithNode:(ASDisplayNode *)node; +/** + * The constrained size used to measure the backing node. + * + * @discussion Defaults to providing a size range that uses the view controller view's bounds as + * both the min and max definitions. Override this method to provide a custom size range to the + * backing node. + */ +- (ASSizeRange)nodeConstrainedSize; + @end diff --git a/AsyncDisplayKit/ASViewController.m b/AsyncDisplayKit/ASViewController.m index 15fe664323..3509ccbe85 100644 --- a/AsyncDisplayKit/ASViewController.m +++ b/AsyncDisplayKit/ASViewController.m @@ -40,9 +40,7 @@ - (void)viewWillLayoutSubviews { [super viewWillLayoutSubviews]; - CGSize viewSize = self.view.bounds.size; - ASSizeRange constrainedSize = ASSizeRangeMake(viewSize, viewSize); - [_node measureWithSizeRange:constrainedSize]; + [_node measureWithSizeRange:[self nodeConstrainedSize]]; } - (void)viewDidLayoutSubviews @@ -61,4 +59,12 @@ [_node recursivelyFetchData]; } +// MARK: - Layout Helpers + +- (ASSizeRange)nodeConstrainedSize +{ + CGSize viewSize = self.view.bounds.size; + return ASSizeRangeMake(viewSize, viewSize); +} + @end