From c42b0dd33a6c80d942a2bc9ee9739d1d1d503bf1 Mon Sep 17 00:00:00 2001 From: ricky Date: Wed, 25 May 2016 10:49:42 -0700 Subject: [PATCH] Remove explicit passing of trait collection to setChild/Children --- AsyncDisplayKit/ASDisplayNode.mm | 1 + AsyncDisplayKit/Details/ASTraitCollection.h | 1 + AsyncDisplayKit/Details/ASTraitCollection.m | 10 ++++++ .../Layout/ASBackgroundLayoutSpec.h | 3 -- .../Layout/ASBackgroundLayoutSpec.mm | 22 +++---------- AsyncDisplayKit/Layout/ASCenterLayoutSpec.h | 5 --- AsyncDisplayKit/Layout/ASCenterLayoutSpec.mm | 15 ++------- AsyncDisplayKit/Layout/ASInsetLayoutSpec.h | 1 - AsyncDisplayKit/Layout/ASInsetLayoutSpec.mm | 14 +++------ AsyncDisplayKit/Layout/ASLayoutSpec.h | 7 +++-- AsyncDisplayKit/Layout/ASLayoutSpec.mm | 31 +++++-------------- AsyncDisplayKit/Layout/ASOverlayLayoutSpec.h | 3 -- AsyncDisplayKit/Layout/ASOverlayLayoutSpec.mm | 22 +++---------- AsyncDisplayKit/Layout/ASRatioLayoutSpec.h | 1 - AsyncDisplayKit/Layout/ASRatioLayoutSpec.mm | 14 +++------ AsyncDisplayKit/Layout/ASRelativeLayoutSpec.h | 9 +----- .../Layout/ASRelativeLayoutSpec.mm | 21 ++----------- AsyncDisplayKit/Layout/ASStackLayoutSpec.h | 13 +------- AsyncDisplayKit/Layout/ASStackLayoutSpec.mm | 31 +++---------------- AsyncDisplayKit/Layout/ASStaticLayoutSpec.h | 1 - AsyncDisplayKit/Layout/ASStaticLayoutSpec.mm | 15 +++------ 21 files changed, 59 insertions(+), 181 deletions(-) diff --git a/AsyncDisplayKit/ASDisplayNode.mm b/AsyncDisplayKit/ASDisplayNode.mm index 0232c141f9..2a1c59067b 100644 --- a/AsyncDisplayKit/ASDisplayNode.mm +++ b/AsyncDisplayKit/ASDisplayNode.mm @@ -1904,6 +1904,7 @@ void recursivelyTriggerDisplayForLayer(CALayer *layer, BOOL shouldBlock) if ((_methodOverrides & ASDisplayNodeMethodOverrideLayoutSpecThatFits) || _layoutSpecBlock != NULL) { ASLayoutSpec *layoutSpec = [self layoutSpecThatFits:constrainedSize]; layoutSpec.parent = self; // This causes upward propogation of any non-default layoutable values. + layoutSpec.traitCollection = self.asyncTraitCollection; layoutSpec.isMutable = NO; ASLayout *layout = [layoutSpec measureWithSizeRange:constrainedSize]; // Make sure layoutableObject of the root layout is `self`, so that the flattened layout will be structurally correct. diff --git a/AsyncDisplayKit/Details/ASTraitCollection.h b/AsyncDisplayKit/Details/ASTraitCollection.h index 2168a40302..5d6118cab4 100644 --- a/AsyncDisplayKit/Details/ASTraitCollection.h +++ b/AsyncDisplayKit/Details/ASTraitCollection.h @@ -50,5 +50,6 @@ - (ASEnvironmentTraitCollection)environmentTraitCollection; +- (BOOL)isEqualToTraitCollection:(ASTraitCollection *)traitCollection; @end diff --git a/AsyncDisplayKit/Details/ASTraitCollection.m b/AsyncDisplayKit/Details/ASTraitCollection.m index af492c759f..d424c2effa 100644 --- a/AsyncDisplayKit/Details/ASTraitCollection.m +++ b/AsyncDisplayKit/Details/ASTraitCollection.m @@ -95,4 +95,14 @@ }; } +- (BOOL)isEqualToTraitCollection:(ASTraitCollection *)traitCollection +{ + return self.displayScale == traitCollection.displayScale && + self.horizontalSizeClass == traitCollection.horizontalSizeClass && + self.verticalSizeClass == traitCollection.verticalSizeClass && + self.userInterfaceIdiom == traitCollection.userInterfaceIdiom && + self.traitCollectionContext == traitCollection.traitCollectionContext && + self.forceTouchCapability == traitCollection.forceTouchCapability; +} + @end diff --git a/AsyncDisplayKit/Layout/ASBackgroundLayoutSpec.h b/AsyncDisplayKit/Layout/ASBackgroundLayoutSpec.h index b1d8bed120..9f04490cc3 100644 --- a/AsyncDisplayKit/Layout/ASBackgroundLayoutSpec.h +++ b/AsyncDisplayKit/Layout/ASBackgroundLayoutSpec.h @@ -24,9 +24,6 @@ NS_ASSUME_NONNULL_BEGIN @param background A layoutable object that is laid out behind the child. If this is nil, the background is omitted. */ + (instancetype)backgroundLayoutSpecWithChild:(id)child background:(nullable id)background; -+ (instancetype)backgroundLayoutSpecWithChild:(id)child background:(nullable id)background traitCollect:(nullable ASTraitCollection *)traitCollection; - -- (void)setBackground:(id)background traitCollection:(nullable ASTraitCollection *)traitCollection; @end diff --git a/AsyncDisplayKit/Layout/ASBackgroundLayoutSpec.mm b/AsyncDisplayKit/Layout/ASBackgroundLayoutSpec.mm index 2044a7a1e4..77f41112f2 100644 --- a/AsyncDisplayKit/Layout/ASBackgroundLayoutSpec.mm +++ b/AsyncDisplayKit/Layout/ASBackgroundLayoutSpec.mm @@ -13,7 +13,6 @@ #import "ASAssert.h" #import "ASBaseDefines.h" #import "ASLayout.h" -#import "ASTraitCollection.h" static NSString * const kBackgroundChildKey = @"kBackgroundChildKey"; @@ -22,27 +21,21 @@ static NSString * const kBackgroundChildKey = @"kBackgroundChildKey"; @implementation ASBackgroundLayoutSpec -- (instancetype)initWithChild:(id)child background:(id)background traitCollection:(ASTraitCollection *)traitCollection +- (instancetype)initWithChild:(id)child background:(id)background { if (!(self = [super init])) { return nil; } ASDisplayNodeAssertNotNil(child, @"Child cannot be nil"); - self.environmentTraitCollection = [traitCollection environmentTraitCollection]; - [self setChild:child withTraitCollection:traitCollection]; - [self setBackground:background traitCollection:traitCollection]; + [self setChild:child]; + self.background = background; return self; } + (instancetype)backgroundLayoutSpecWithChild:(id)child background:(id)background; { - return [self backgroundLayoutSpecWithChild:child background:background traitCollect:nil]; -} - -+ (instancetype)backgroundLayoutSpecWithChild:(id)child background:(nullable id)background traitCollect:(nullable ASTraitCollection *)traitCollection -{ - return [[self alloc] initWithChild:child background:background traitCollection:traitCollection]; + return [[self alloc] initWithChild:child background:background]; } /** @@ -67,12 +60,7 @@ static NSString * const kBackgroundChildKey = @"kBackgroundChildKey"; - (void)setBackground:(id)background { - [self setBackground:background traitCollection:nil]; -} - -- (void)setBackground:(id)background traitCollection:(ASTraitCollection *)traitCollection -{ - [super setChild:background forIdentifier:kBackgroundChildKey withTraitCollection:traitCollection]; + [super setChild:background forIdentifier:kBackgroundChildKey]; } - (id)background diff --git a/AsyncDisplayKit/Layout/ASCenterLayoutSpec.h b/AsyncDisplayKit/Layout/ASCenterLayoutSpec.h index bee64bf21d..75a48443b7 100644 --- a/AsyncDisplayKit/Layout/ASCenterLayoutSpec.h +++ b/AsyncDisplayKit/Layout/ASCenterLayoutSpec.h @@ -58,11 +58,6 @@ NS_ASSUME_NONNULL_BEGIN sizingOptions:(ASCenterLayoutSpecSizingOptions)sizingOptions child:(id)child; -+ (instancetype)centerLayoutSpecWithCenteringOptions:(ASCenterLayoutSpecCenteringOptions)centeringOptions - sizingOptions:(ASCenterLayoutSpecSizingOptions)sizingOptions - child:(id)child - traitCollection:(nullable ASTraitCollection *)traitCollection; - @end NS_ASSUME_NONNULL_END diff --git a/AsyncDisplayKit/Layout/ASCenterLayoutSpec.mm b/AsyncDisplayKit/Layout/ASCenterLayoutSpec.mm index 7803faba36..147142db1c 100644 --- a/AsyncDisplayKit/Layout/ASCenterLayoutSpec.mm +++ b/AsyncDisplayKit/Layout/ASCenterLayoutSpec.mm @@ -21,13 +21,12 @@ - (instancetype)initWithCenteringOptions:(ASCenterLayoutSpecCenteringOptions)centeringOptions sizingOptions:(ASCenterLayoutSpecSizingOptions)sizingOptions - child:(id)child - traitCollection:(ASTraitCollection *)traitCollection + child:(id)child; { ASRelativeLayoutSpecPosition verticalPosition = [self verticalPositionFromCenteringOptions:centeringOptions]; ASRelativeLayoutSpecPosition horizontalPosition = [self horizontalPositionFromCenteringOptions:centeringOptions]; - if (!(self = [super initWithHorizontalPosition:horizontalPosition verticalPosition:verticalPosition sizingOption:sizingOptions child:child traitCollection:traitCollection])) { + if (!(self = [super initWithHorizontalPosition:horizontalPosition verticalPosition:verticalPosition sizingOption:sizingOptions child:child])) { return nil; } _centeringOptions = centeringOptions; @@ -39,15 +38,7 @@ sizingOptions:(ASCenterLayoutSpecSizingOptions)sizingOptions child:(id)child { - return [self centerLayoutSpecWithCenteringOptions:centeringOptions sizingOptions:sizingOptions child:child traitCollection:nil]; -} - -+ (instancetype)centerLayoutSpecWithCenteringOptions:(ASCenterLayoutSpecCenteringOptions)centeringOptions - sizingOptions:(ASCenterLayoutSpecSizingOptions)sizingOptions - child:(id)child - traitCollection:(nullable ASTraitCollection *)traitCollection -{ - return [[self alloc] initWithCenteringOptions:centeringOptions sizingOptions:sizingOptions child:child traitCollection:traitCollection]; + return [[self alloc] initWithCenteringOptions:centeringOptions sizingOptions:sizingOptions child:child]; } - (void)setCenteringOptions:(ASCenterLayoutSpecCenteringOptions)centeringOptions diff --git a/AsyncDisplayKit/Layout/ASInsetLayoutSpec.h b/AsyncDisplayKit/Layout/ASInsetLayoutSpec.h index d00d7d0aa4..aa320e947d 100644 --- a/AsyncDisplayKit/Layout/ASInsetLayoutSpec.h +++ b/AsyncDisplayKit/Layout/ASInsetLayoutSpec.h @@ -38,7 +38,6 @@ NS_ASSUME_NONNULL_BEGIN @param child The wrapped child to inset. */ + (instancetype)insetLayoutSpecWithInsets:(UIEdgeInsets)insets child:(id)child; -+ (instancetype)insetLayoutSpecWithInsets:(UIEdgeInsets)insets child:(id)child traitCollection:(nullable ASTraitCollection *)traitCollection; @end diff --git a/AsyncDisplayKit/Layout/ASInsetLayoutSpec.mm b/AsyncDisplayKit/Layout/ASInsetLayoutSpec.mm index 757e95d90e..befb7edc3b 100644 --- a/AsyncDisplayKit/Layout/ASInsetLayoutSpec.mm +++ b/AsyncDisplayKit/Layout/ASInsetLayoutSpec.mm @@ -12,9 +12,9 @@ #import "ASAssert.h" #import "ASBaseDefines.h" + #import "ASInternalHelpers.h" #import "ASLayout.h" -#import "ASTraitCollection.h" @interface ASInsetLayoutSpec () { @@ -42,26 +42,20 @@ static CGFloat centerInset(CGFloat outer, CGFloat inner) @implementation ASInsetLayoutSpec -- (instancetype)initWithInsets:(UIEdgeInsets)insets child:(id)child traitCollection:(nullable ASTraitCollection *)traitCollection +- (instancetype)initWithInsets:(UIEdgeInsets)insets child:(id)child; { if (!(self = [super init])) { return nil; } ASDisplayNodeAssertNotNil(child, @"Child cannot be nil"); _insets = insets; - self.environmentTraitCollection = [traitCollection environmentTraitCollection]; - [self setChild:child withTraitCollection:traitCollection]; + [self setChild:child]; return self; } + (instancetype)insetLayoutSpecWithInsets:(UIEdgeInsets)insets child:(id)child { - return [self insetLayoutSpecWithInsets:insets child:child traitCollection:nil]; -} - -+ (instancetype)insetLayoutSpecWithInsets:(UIEdgeInsets)insets child:(id)child traitCollection:(nullable ASTraitCollection *)traitCollection -{ - return [[self alloc] initWithInsets:insets child:child traitCollection:traitCollection]; + return [[self alloc] initWithInsets:insets child:child]; } - (void)setInsets:(UIEdgeInsets)insets diff --git a/AsyncDisplayKit/Layout/ASLayoutSpec.h b/AsyncDisplayKit/Layout/ASLayoutSpec.h index f18cbccf02..3f7a9586d6 100644 --- a/AsyncDisplayKit/Layout/ASLayoutSpec.h +++ b/AsyncDisplayKit/Layout/ASLayoutSpec.h @@ -11,6 +11,8 @@ #import #import +@class ASTraitCollection; + NS_ASSUME_NONNULL_BEGIN /** A layout spec is an immutable object that describes a layout, loosely inspired by React. */ @@ -23,6 +25,8 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nonatomic, assign) BOOL isMutable; +@property (nonatomic, strong, nullable) ASTraitCollection *traitCollection; + - (instancetype)init; /** @@ -46,7 +50,6 @@ NS_ASSUME_NONNULL_BEGIN * property that behind the scenes is calling setChild:forIdentifier:. */ - (void)setChild:(id)child; -- (void)setChild:(id)child withTraitCollection:(ASTraitCollection *)traitCollection; /** * Adds a child with the given identifier to this layout spec. @@ -66,7 +69,6 @@ NS_ASSUME_NONNULL_BEGIN * property that behind the scenes is calling setChild:forIdentifier:. */ - (void)setChild:(id)child forIdentifier:(NSString *)identifier; -- (void)setChild:(id)child forIdentifier:(NSString *)identifier withTraitCollection:(ASTraitCollection *)traitCollection; /** * Adds childen to this layout spec. @@ -80,7 +82,6 @@ NS_ASSUME_NONNULL_BEGIN * setChild: and setChild:forIdentifier: methods to do something appropriate or to assert. */ - (void)setChildren:(NSArray> *)children; -- (void)setChildren:(NSArray> *)children withTraitCollection:(ASTraitCollection *)traitCollection; /** * Get child methods diff --git a/AsyncDisplayKit/Layout/ASLayoutSpec.mm b/AsyncDisplayKit/Layout/ASLayoutSpec.mm index 396d70efc0..2de93d49b2 100644 --- a/AsyncDisplayKit/Layout/ASLayoutSpec.mm +++ b/AsyncDisplayKit/Layout/ASLayoutSpec.mm @@ -114,48 +114,27 @@ } - (void)setChild:(id)child -{ - id parent = [child parent]; - [self setChild:child withTraitCollection:[parent asyncTraitCollection]]; -} - -- (void)setChild:(id)child withTraitCollection:(ASTraitCollection *)traitCollection { ASDisplayNodeAssert(self.isMutable, @"Cannot set properties when layout spec is not mutable"); id finalLayoutable = [self layoutableToAddFromLayoutable:child]; _child = finalLayoutable; [self propagateUpLayoutable:finalLayoutable]; - ASEnvironmentStatePropagateDown(self, [traitCollection environmentTraitCollection]); } - (void)setChild:(id)child forIdentifier:(NSString *)identifier -{ - id parent = [child parent]; - [self setChild:child forIdentifier:identifier withTraitCollection:[parent asyncTraitCollection]]; -} - -- (void)setChild:(id)child forIdentifier:(NSString *)identifier withTraitCollection:(ASTraitCollection *)traitCollection { ASDisplayNodeAssert(self.isMutable, @"Cannot set properties when layout spec is not mutable"); id finalLayoutable = [self layoutableToAddFromLayoutable:child]; self.childrenWithIdentifier[identifier] = finalLayoutable; - ASEnvironmentStatePropagateDown(self, [traitCollection environmentTraitCollection]); // TODO: Should we propagate up the layoutable at it could happen that multiple children will propagated up their // layout options and one child will overwrite values from another child // [self propagateUpLayoutable:finalLayoutable]; } -- (void)setChildren:(NSArray *)children -{ - id child = [children firstObject]; - id parent = [child parent]; - [self setChildren:children withTraitCollection:[parent asyncTraitCollection]]; -} - -- (void)setChildren:(NSArray> *)children withTraitCollection:(ASTraitCollection *)traitCollection +- (void)setChildren:(NSArray> *)children { ASDisplayNodeAssert(self.isMutable, @"Cannot set properties when layout spec is not mutable"); @@ -168,7 +147,6 @@ if (finalChildren.size() > 0) { _children = [NSArray arrayWithObjects:&finalChildren[0] count:finalChildren.size()]; } - ASEnvironmentStatePropagateDown(self, [traitCollection environmentTraitCollection]); } - (id)childForIdentifier:(NSString *)identifier @@ -186,6 +164,13 @@ return [_children copy]; } +- (void)setTraitCollection:(ASTraitCollection *)traitCollection +{ + if ([traitCollection isEqualToTraitCollection:self.traitCollection] == NO) { + _traitCollection = traitCollection; + ASEnvironmentStatePropagateDown(self, [traitCollection environmentTraitCollection]); + } +} #pragma mark - ASEnvironment diff --git a/AsyncDisplayKit/Layout/ASOverlayLayoutSpec.h b/AsyncDisplayKit/Layout/ASOverlayLayoutSpec.h index f1268e8e60..6e1c321bc7 100644 --- a/AsyncDisplayKit/Layout/ASOverlayLayoutSpec.h +++ b/AsyncDisplayKit/Layout/ASOverlayLayoutSpec.h @@ -20,9 +20,6 @@ NS_ASSUME_NONNULL_BEGIN @property (nullable, nonatomic, strong) id overlay; + (instancetype)overlayLayoutSpecWithChild:(id)child overlay:(nullable id)overlay; -+ (instancetype)overlayLayoutSpecWithChild:(id)child overlay:(nullable id)overlay traitCollection:(nullable ASTraitCollection *)traitCollection; - -- (void)setOverlay:(id _Nullable)overlay traitCollection:(nullable ASTraitCollection *)traitCollection; @end diff --git a/AsyncDisplayKit/Layout/ASOverlayLayoutSpec.mm b/AsyncDisplayKit/Layout/ASOverlayLayoutSpec.mm index aa9b1726ac..f8cef20a18 100644 --- a/AsyncDisplayKit/Layout/ASOverlayLayoutSpec.mm +++ b/AsyncDisplayKit/Layout/ASOverlayLayoutSpec.mm @@ -13,42 +13,30 @@ #import "ASAssert.h" #import "ASBaseDefines.h" #import "ASLayout.h" -#import "ASTraitCollection.h" static NSString * const kOverlayChildKey = @"kOverlayChildKey"; @implementation ASOverlayLayoutSpec -- (instancetype)initWithChild:(id)child overlay:(id)overlay traitCollection:(nullable ASTraitCollection *)traitCollection +- (instancetype)initWithChild:(id)child overlay:(id)overlay { if (!(self = [super init])) { return nil; } ASDisplayNodeAssertNotNil(child, @"Child that will be overlayed on shouldn't be nil"); - self.environmentTraitCollection = [traitCollection environmentTraitCollection]; - [self setOverlay:overlay traitCollection:traitCollection]; - [self setChild:child withTraitCollection:traitCollection]; + self.overlay = overlay; + [self setChild:child]; return self; } + (instancetype)overlayLayoutSpecWithChild:(id)child overlay:(id)overlay { - return [self overlayLayoutSpecWithChild:child overlay:overlay traitCollection:nil]; -} - -+ (instancetype)overlayLayoutSpecWithChild:(id)child overlay:(nullable id)overlay traitCollection:(nullable ASTraitCollection *)traitCollection -{ - return [[self alloc] initWithChild:child overlay:overlay traitCollection:traitCollection]; + return [[self alloc] initWithChild:child overlay:overlay]; } - (void)setOverlay:(id)overlay { - [self setOverlay:overlay traitCollection:nil]; -} - -- (void)setOverlay:(id _Nullable)overlay traitCollection:(nullable ASTraitCollection *)traitCollection -{ - return [super setChild:overlay forIdentifier:kOverlayChildKey withTraitCollection:traitCollection]; + [super setChild:overlay forIdentifier:kOverlayChildKey]; } - (id)overlay diff --git a/AsyncDisplayKit/Layout/ASRatioLayoutSpec.h b/AsyncDisplayKit/Layout/ASRatioLayoutSpec.h index d602541b4a..f910982985 100644 --- a/AsyncDisplayKit/Layout/ASRatioLayoutSpec.h +++ b/AsyncDisplayKit/Layout/ASRatioLayoutSpec.h @@ -36,7 +36,6 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, assign) CGFloat ratio; + (instancetype)ratioLayoutSpecWithRatio:(CGFloat)ratio child:(id)child; -+ (instancetype)ratioLayoutSpecWithRatio:(CGFloat)ratio child:(id)child traitCollection:(nullable ASTraitCollection *)traitCollection; @end diff --git a/AsyncDisplayKit/Layout/ASRatioLayoutSpec.mm b/AsyncDisplayKit/Layout/ASRatioLayoutSpec.mm index 38876348c3..17d18a763d 100644 --- a/AsyncDisplayKit/Layout/ASRatioLayoutSpec.mm +++ b/AsyncDisplayKit/Layout/ASRatioLayoutSpec.mm @@ -15,9 +15,9 @@ #import "ASAssert.h" #import "ASBaseDefines.h" + #import "ASInternalHelpers.h" #import "ASLayout.h" -#import "ASTraitCollection.h" @implementation ASRatioLayoutSpec { @@ -26,15 +26,10 @@ + (instancetype)ratioLayoutSpecWithRatio:(CGFloat)ratio child:(id)child { - return [self ratioLayoutSpecWithRatio:ratio child:child traitCollection:nil]; + return [[self alloc] initWithRatio:ratio child:child]; } -+ (instancetype)ratioLayoutSpecWithRatio:(CGFloat)ratio child:(id)child traitCollection:(ASTraitCollection *)traitCollection -{ - return [[self alloc] initWithRatio:ratio child:child traitCollection:traitCollection]; -} - -- (instancetype)initWithRatio:(CGFloat)ratio child:(id)child traitCollection:(ASTraitCollection *)traitCollection +- (instancetype)initWithRatio:(CGFloat)ratio child:(id)child; { if (!(self = [super init])) { return nil; @@ -42,8 +37,7 @@ ASDisplayNodeAssertNotNil(child, @"Child cannot be nil"); ASDisplayNodeAssert(ratio > 0, @"Ratio should be strictly positive, but received %f", ratio); _ratio = ratio; - self.environmentTraitCollection = [traitCollection environmentTraitCollection]; - [self setChild:child withTraitCollection:traitCollection]; + [self setChild:child]; return self; } diff --git a/AsyncDisplayKit/Layout/ASRelativeLayoutSpec.h b/AsyncDisplayKit/Layout/ASRelativeLayoutSpec.h index 1baafd105a..ddc88c0664 100644 --- a/AsyncDisplayKit/Layout/ASRelativeLayoutSpec.h +++ b/AsyncDisplayKit/Layout/ASRelativeLayoutSpec.h @@ -54,12 +54,6 @@ NS_ASSUME_NONNULL_BEGIN sizingOption:(ASRelativeLayoutSpecSizingOption)sizingOption child:(id)child; -+ (instancetype)relativePositionLayoutSpecWithHorizontalPosition:(ASRelativeLayoutSpecPosition)horizontalPosition - verticalPosition:(ASRelativeLayoutSpecPosition)verticalPosition - sizingOption:(ASRelativeLayoutSpecSizingOption)sizingOption - child:(id)child - traitCollection:(nullable ASTraitCollection *)traitCollection; - /*! * @discussion convenience initializer for a ASRelativeLayoutSpec * @param horizontalPosition how to position the item on the horizontal (x) axis @@ -71,8 +65,7 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)initWithHorizontalPosition:(ASRelativeLayoutSpecPosition)horizontalPosition verticalPosition:(ASRelativeLayoutSpecPosition)verticalPosition sizingOption:(ASRelativeLayoutSpecSizingOption)sizingOption - child:(id)child - traitCollection:(nullable ASTraitCollection *)traitCollection; + child:(id)child; @end diff --git a/AsyncDisplayKit/Layout/ASRelativeLayoutSpec.mm b/AsyncDisplayKit/Layout/ASRelativeLayoutSpec.mm index 516d36ec3d..e1c2d6c0d3 100644 --- a/AsyncDisplayKit/Layout/ASRelativeLayoutSpec.mm +++ b/AsyncDisplayKit/Layout/ASRelativeLayoutSpec.mm @@ -9,15 +9,10 @@ #import "ASInternalHelpers.h" #import "ASLayout.h" -#import "ASTraitCollection.h" @implementation ASRelativeLayoutSpec -- (instancetype)initWithHorizontalPosition:(ASRelativeLayoutSpecPosition)horizontalPosition - verticalPosition:(ASRelativeLayoutSpecPosition)verticalPosition - sizingOption:(ASRelativeLayoutSpecSizingOption)sizingOption - child:(id)child - traitCollection:(ASTraitCollection *)traitCollection +- (instancetype)initWithHorizontalPosition:(ASRelativeLayoutSpecPosition)horizontalPosition verticalPosition:(ASRelativeLayoutSpecPosition)verticalPosition sizingOption:(ASRelativeLayoutSpecSizingOption)sizingOption child:(id)child { if (!(self = [super init])) { return nil; @@ -26,23 +21,13 @@ _horizontalPosition = horizontalPosition; _verticalPosition = verticalPosition; _sizingOption = sizingOption; - self.environmentTraitCollection = [traitCollection environmentTraitCollection]; - [self setChild:child withTraitCollection:traitCollection]; + [self setChild:child]; return self; } + (instancetype)relativePositionLayoutSpecWithHorizontalPosition:(ASRelativeLayoutSpecPosition)horizontalPosition verticalPosition:(ASRelativeLayoutSpecPosition)verticalPosition sizingOption:(ASRelativeLayoutSpecSizingOption)sizingOption child:(id)child { - return [self relativePositionLayoutSpecWithHorizontalPosition:horizontalPosition verticalPosition:verticalPosition sizingOption:sizingOption child:child traitCollection:nil]; -} - -+ (instancetype)relativePositionLayoutSpecWithHorizontalPosition:(ASRelativeLayoutSpecPosition)horizontalPosition - verticalPosition:(ASRelativeLayoutSpecPosition)verticalPosition - sizingOption:(ASRelativeLayoutSpecSizingOption)sizingOption - child:(id)child - traitCollection:(ASTraitCollection *)traitCollection -{ - return [[self alloc] initWithHorizontalPosition:horizontalPosition verticalPosition:verticalPosition sizingOption:sizingOption child:child traitCollection:traitCollection]; + return [[self alloc] initWithHorizontalPosition:horizontalPosition verticalPosition:verticalPosition sizingOption:sizingOption child:child]; } - (void)setHorizontalPosition:(ASRelativeLayoutSpecPosition)horizontalPosition diff --git a/AsyncDisplayKit/Layout/ASStackLayoutSpec.h b/AsyncDisplayKit/Layout/ASStackLayoutSpec.h index 68444a00fc..2488160048 100644 --- a/AsyncDisplayKit/Layout/ASStackLayoutSpec.h +++ b/AsyncDisplayKit/Layout/ASStackLayoutSpec.h @@ -71,18 +71,7 @@ NS_ASSUME_NONNULL_BEGIN @param alignItems Orientation of the children along the cross axis @param children ASLayoutable children to be positioned. */ -+ (instancetype)stackLayoutSpecWithDirection:(ASStackLayoutDirection)direction - spacing:(CGFloat)spacing - justifyContent:(ASStackLayoutJustifyContent)justifyContent - alignItems:(ASStackLayoutAlignItems)alignItems - children:(NSArray> *)children; - -+ (instancetype)stackLayoutSpecWithDirection:(ASStackLayoutDirection)direction - spacing:(CGFloat)spacing - justifyContent:(ASStackLayoutJustifyContent)justifyContent - alignItems:(ASStackLayoutAlignItems)alignItems - children:(NSArray> *)children - traitCollection:(nullable ASTraitCollection *)traitCollection; ++ (instancetype)stackLayoutSpecWithDirection:(ASStackLayoutDirection)direction spacing:(CGFloat)spacing justifyContent:(ASStackLayoutJustifyContent)justifyContent alignItems:(ASStackLayoutAlignItems)alignItems children:(NSArray> *)children; /** * @return A stack layout spec with direction of ASStackLayoutDirectionVertical diff --git a/AsyncDisplayKit/Layout/ASStackLayoutSpec.mm b/AsyncDisplayKit/Layout/ASStackLayoutSpec.mm index f19f9f7555..26b6d449c7 100644 --- a/AsyncDisplayKit/Layout/ASStackLayoutSpec.mm +++ b/AsyncDisplayKit/Layout/ASStackLayoutSpec.mm @@ -19,7 +19,6 @@ #import "ASStackLayoutSpecUtilities.h" #import "ASStackUnpositionedLayout.h" #import "ASThread.h" -#import "ASTraitCollection.h" @implementation ASStackLayoutSpec { @@ -28,26 +27,12 @@ - (instancetype)init { - return [self initWithDirection:ASStackLayoutDirectionHorizontal spacing:0.0 justifyContent:ASStackLayoutJustifyContentStart alignItems:ASStackLayoutAlignItemsStart children:nil traitCollection:nil]; + return [self initWithDirection:ASStackLayoutDirectionHorizontal spacing:0.0 justifyContent:ASStackLayoutJustifyContentStart alignItems:ASStackLayoutAlignItemsStart children:nil]; } -+ (instancetype)stackLayoutSpecWithDirection:(ASStackLayoutDirection)direction - spacing:(CGFloat)spacing - justifyContent:(ASStackLayoutJustifyContent)justifyContent - alignItems:(ASStackLayoutAlignItems)alignItems - children:(NSArray *)children ++ (instancetype)stackLayoutSpecWithDirection:(ASStackLayoutDirection)direction spacing:(CGFloat)spacing justifyContent:(ASStackLayoutJustifyContent)justifyContent alignItems:(ASStackLayoutAlignItems)alignItems children:(NSArray *)children { - return [self stackLayoutSpecWithDirection:direction spacing:spacing justifyContent:justifyContent alignItems:alignItems children:children traitCollection:nil]; -} - -+ (instancetype)stackLayoutSpecWithDirection:(ASStackLayoutDirection)direction - spacing:(CGFloat)spacing - justifyContent:(ASStackLayoutJustifyContent)justifyContent - alignItems:(ASStackLayoutAlignItems)alignItems - children:(NSArray> *)children - traitCollection:(ASTraitCollection *)traitCollection -{ - return [[self alloc] initWithDirection:direction spacing:spacing justifyContent:justifyContent alignItems:alignItems children:children traitCollection:traitCollection]; + return [[self alloc] initWithDirection:direction spacing:spacing justifyContent:justifyContent alignItems:alignItems children:children]; } + (instancetype)verticalStackLayoutSpec @@ -64,12 +49,7 @@ return stackLayoutSpec; } -- (instancetype)initWithDirection:(ASStackLayoutDirection)direction - spacing:(CGFloat)spacing - justifyContent:(ASStackLayoutJustifyContent)justifyContent - alignItems:(ASStackLayoutAlignItems)alignItems - children:(NSArray *)children - traitCollection:(ASTraitCollection *)traitCollection +- (instancetype)initWithDirection:(ASStackLayoutDirection)direction spacing:(CGFloat)spacing justifyContent:(ASStackLayoutJustifyContent)justifyContent alignItems:(ASStackLayoutAlignItems)alignItems children:(NSArray *)children { if (!(self = [super init])) { return nil; @@ -81,8 +61,7 @@ _alignItems = alignItems; _justifyContent = justifyContent; - self.environmentTraitCollection = [traitCollection environmentTraitCollection]; - [self setChildren:children withTraitCollection:traitCollection]; + [self setChildren:children]; return self; } diff --git a/AsyncDisplayKit/Layout/ASStaticLayoutSpec.h b/AsyncDisplayKit/Layout/ASStaticLayoutSpec.h index cc6d8ec9c6..44da4adf3d 100644 --- a/AsyncDisplayKit/Layout/ASStaticLayoutSpec.h +++ b/AsyncDisplayKit/Layout/ASStaticLayoutSpec.h @@ -24,7 +24,6 @@ NS_ASSUME_NONNULL_BEGIN @param children Children to be positioned at fixed positions, each conforms to ASStaticLayoutable */ + (instancetype)staticLayoutSpecWithChildren:(NSArray> *)children; -+ (instancetype)staticLayoutSpecWithChildren:(NSArray> *)children traitCollection:(nullable ASTraitCollection *)traitCollection; @end diff --git a/AsyncDisplayKit/Layout/ASStaticLayoutSpec.mm b/AsyncDisplayKit/Layout/ASStaticLayoutSpec.mm index 6538716353..a727376a57 100644 --- a/AsyncDisplayKit/Layout/ASStaticLayoutSpec.mm +++ b/AsyncDisplayKit/Layout/ASStaticLayoutSpec.mm @@ -13,32 +13,25 @@ #import "ASLayoutSpecUtilities.h" #import "ASInternalHelpers.h" #import "ASLayout.h" -#import "ASTraitCollection.h" @implementation ASStaticLayoutSpec + (instancetype)staticLayoutSpecWithChildren:(NSArray *)children { - return [self staticLayoutSpecWithChildren:children traitCollection:nil]; -} - -+ (instancetype)staticLayoutSpecWithChildren:(NSArray> *)children traitCollection:(ASTraitCollection *)traitCollection -{ - return [[self alloc] initWithChildren:children traitCollection:traitCollection]; + return [[self alloc] initWithChildren:children]; } - (instancetype)init { - return [self initWithChildren:@[] traitCollection:nil]; + return [self initWithChildren:@[]]; } -- (instancetype)initWithChildren:(NSArray *)children traitCollection:(ASTraitCollection *)traitCollection +- (instancetype)initWithChildren:(NSArray *)children { if (!(self = [super init])) { return nil; } - self.environmentTraitCollection = [traitCollection environmentTraitCollection]; - [self setChildren:children withTraitCollection:traitCollection]; + self.children = children; return self; }