mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-09-09 06:00:43 +00:00
Remove explicit passing of trait collection to setChild/Children
This commit is contained in:
parent
a33966d4ae
commit
c42b0dd33a
@ -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.
|
||||
|
@ -50,5 +50,6 @@
|
||||
|
||||
|
||||
- (ASEnvironmentTraitCollection)environmentTraitCollection;
|
||||
- (BOOL)isEqualToTraitCollection:(ASTraitCollection *)traitCollection;
|
||||
|
||||
@end
|
||||
|
@ -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
|
||||
|
@ -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<ASLayoutable>)child background:(nullable id<ASLayoutable>)background;
|
||||
+ (instancetype)backgroundLayoutSpecWithChild:(id<ASLayoutable>)child background:(nullable id<ASLayoutable>)background traitCollect:(nullable ASTraitCollection *)traitCollection;
|
||||
|
||||
- (void)setBackground:(id<ASLayoutable>)background traitCollection:(nullable ASTraitCollection *)traitCollection;
|
||||
|
||||
@end
|
||||
|
||||
|
@ -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<ASLayoutable>)child background:(id<ASLayoutable>)background traitCollection:(ASTraitCollection *)traitCollection
|
||||
- (instancetype)initWithChild:(id<ASLayoutable>)child background:(id<ASLayoutable>)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<ASLayoutable>)child background:(id<ASLayoutable>)background;
|
||||
{
|
||||
return [self backgroundLayoutSpecWithChild:child background:background traitCollect:nil];
|
||||
}
|
||||
|
||||
+ (instancetype)backgroundLayoutSpecWithChild:(id<ASLayoutable>)child background:(nullable id<ASLayoutable>)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<ASLayoutable>)background
|
||||
{
|
||||
[self setBackground:background traitCollection:nil];
|
||||
}
|
||||
|
||||
- (void)setBackground:(id<ASLayoutable>)background traitCollection:(ASTraitCollection *)traitCollection
|
||||
{
|
||||
[super setChild:background forIdentifier:kBackgroundChildKey withTraitCollection:traitCollection];
|
||||
[super setChild:background forIdentifier:kBackgroundChildKey];
|
||||
}
|
||||
|
||||
- (id<ASLayoutable>)background
|
||||
|
@ -58,11 +58,6 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
sizingOptions:(ASCenterLayoutSpecSizingOptions)sizingOptions
|
||||
child:(id<ASLayoutable>)child;
|
||||
|
||||
+ (instancetype)centerLayoutSpecWithCenteringOptions:(ASCenterLayoutSpecCenteringOptions)centeringOptions
|
||||
sizingOptions:(ASCenterLayoutSpecSizingOptions)sizingOptions
|
||||
child:(id<ASLayoutable>)child
|
||||
traitCollection:(nullable ASTraitCollection *)traitCollection;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
@ -21,13 +21,12 @@
|
||||
|
||||
- (instancetype)initWithCenteringOptions:(ASCenterLayoutSpecCenteringOptions)centeringOptions
|
||||
sizingOptions:(ASCenterLayoutSpecSizingOptions)sizingOptions
|
||||
child:(id<ASLayoutable>)child
|
||||
traitCollection:(ASTraitCollection *)traitCollection
|
||||
child:(id<ASLayoutable>)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<ASLayoutable>)child
|
||||
{
|
||||
return [self centerLayoutSpecWithCenteringOptions:centeringOptions sizingOptions:sizingOptions child:child traitCollection:nil];
|
||||
}
|
||||
|
||||
+ (instancetype)centerLayoutSpecWithCenteringOptions:(ASCenterLayoutSpecCenteringOptions)centeringOptions
|
||||
sizingOptions:(ASCenterLayoutSpecSizingOptions)sizingOptions
|
||||
child:(id<ASLayoutable>)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
|
||||
|
@ -38,7 +38,6 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
@param child The wrapped child to inset.
|
||||
*/
|
||||
+ (instancetype)insetLayoutSpecWithInsets:(UIEdgeInsets)insets child:(id<ASLayoutable>)child;
|
||||
+ (instancetype)insetLayoutSpecWithInsets:(UIEdgeInsets)insets child:(id<ASLayoutable>)child traitCollection:(nullable ASTraitCollection *)traitCollection;
|
||||
|
||||
@end
|
||||
|
||||
|
@ -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<ASLayoutable>)child traitCollection:(nullable ASTraitCollection *)traitCollection
|
||||
- (instancetype)initWithInsets:(UIEdgeInsets)insets child:(id<ASLayoutable>)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<ASLayoutable>)child
|
||||
{
|
||||
return [self insetLayoutSpecWithInsets:insets child:child traitCollection:nil];
|
||||
}
|
||||
|
||||
+ (instancetype)insetLayoutSpecWithInsets:(UIEdgeInsets)insets child:(id<ASLayoutable>)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
|
||||
|
@ -11,6 +11,8 @@
|
||||
#import <AsyncDisplayKit/ASLayoutable.h>
|
||||
#import <AsyncDisplayKit/ASAsciiArtBoxCreator.h>
|
||||
|
||||
@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<ASLayoutable>)child;
|
||||
- (void)setChild:(id<ASLayoutable>)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<ASLayoutable>)child forIdentifier:(NSString *)identifier;
|
||||
- (void)setChild:(id<ASLayoutable>)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<id<ASLayoutable>> *)children;
|
||||
- (void)setChildren:(NSArray<id<ASLayoutable>> *)children withTraitCollection:(ASTraitCollection *)traitCollection;
|
||||
|
||||
/**
|
||||
* Get child methods
|
||||
|
@ -114,48 +114,27 @@
|
||||
}
|
||||
|
||||
- (void)setChild:(id<ASLayoutable>)child
|
||||
{
|
||||
id<ASEnvironment> parent = [child parent];
|
||||
[self setChild:child withTraitCollection:[parent asyncTraitCollection]];
|
||||
}
|
||||
|
||||
- (void)setChild:(id<ASLayoutable>)child withTraitCollection:(ASTraitCollection *)traitCollection
|
||||
{
|
||||
ASDisplayNodeAssert(self.isMutable, @"Cannot set properties when layout spec is not mutable");
|
||||
|
||||
id<ASLayoutable> finalLayoutable = [self layoutableToAddFromLayoutable:child];
|
||||
_child = finalLayoutable;
|
||||
[self propagateUpLayoutable:finalLayoutable];
|
||||
ASEnvironmentStatePropagateDown(self, [traitCollection environmentTraitCollection]);
|
||||
}
|
||||
|
||||
- (void)setChild:(id<ASLayoutable>)child forIdentifier:(NSString *)identifier
|
||||
{
|
||||
id<ASEnvironment> parent = [child parent];
|
||||
[self setChild:child forIdentifier:identifier withTraitCollection:[parent asyncTraitCollection]];
|
||||
}
|
||||
|
||||
- (void)setChild:(id<ASLayoutable>)child forIdentifier:(NSString *)identifier withTraitCollection:(ASTraitCollection *)traitCollection
|
||||
{
|
||||
ASDisplayNodeAssert(self.isMutable, @"Cannot set properties when layout spec is not mutable");
|
||||
|
||||
id<ASLayoutable> 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<ASLayoutable> child = [children firstObject];
|
||||
id<ASEnvironment> parent = [child parent];
|
||||
[self setChildren:children withTraitCollection:[parent asyncTraitCollection]];
|
||||
}
|
||||
|
||||
- (void)setChildren:(NSArray<id<ASLayoutable>> *)children withTraitCollection:(ASTraitCollection *)traitCollection
|
||||
- (void)setChildren:(NSArray<id<ASLayoutable>> *)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<ASLayoutable>)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
|
||||
|
||||
|
@ -20,9 +20,6 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
@property (nullable, nonatomic, strong) id<ASLayoutable> overlay;
|
||||
|
||||
+ (instancetype)overlayLayoutSpecWithChild:(id<ASLayoutable>)child overlay:(nullable id<ASLayoutable>)overlay;
|
||||
+ (instancetype)overlayLayoutSpecWithChild:(id<ASLayoutable>)child overlay:(nullable id<ASLayoutable>)overlay traitCollection:(nullable ASTraitCollection *)traitCollection;
|
||||
|
||||
- (void)setOverlay:(id<ASLayoutable> _Nullable)overlay traitCollection:(nullable ASTraitCollection *)traitCollection;
|
||||
|
||||
@end
|
||||
|
||||
|
@ -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<ASLayoutable>)child overlay:(id<ASLayoutable>)overlay traitCollection:(nullable ASTraitCollection *)traitCollection
|
||||
- (instancetype)initWithChild:(id<ASLayoutable>)child overlay:(id<ASLayoutable>)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<ASLayoutable>)child overlay:(id<ASLayoutable>)overlay
|
||||
{
|
||||
return [self overlayLayoutSpecWithChild:child overlay:overlay traitCollection:nil];
|
||||
}
|
||||
|
||||
+ (instancetype)overlayLayoutSpecWithChild:(id<ASLayoutable>)child overlay:(nullable id<ASLayoutable>)overlay traitCollection:(nullable ASTraitCollection *)traitCollection
|
||||
{
|
||||
return [[self alloc] initWithChild:child overlay:overlay traitCollection:traitCollection];
|
||||
return [[self alloc] initWithChild:child overlay:overlay];
|
||||
}
|
||||
|
||||
- (void)setOverlay:(id<ASLayoutable>)overlay
|
||||
{
|
||||
[self setOverlay:overlay traitCollection:nil];
|
||||
}
|
||||
|
||||
- (void)setOverlay:(id<ASLayoutable> _Nullable)overlay traitCollection:(nullable ASTraitCollection *)traitCollection
|
||||
{
|
||||
return [super setChild:overlay forIdentifier:kOverlayChildKey withTraitCollection:traitCollection];
|
||||
[super setChild:overlay forIdentifier:kOverlayChildKey];
|
||||
}
|
||||
|
||||
- (id<ASLayoutable>)overlay
|
||||
|
@ -36,7 +36,6 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
@property (nonatomic, assign) CGFloat ratio;
|
||||
|
||||
+ (instancetype)ratioLayoutSpecWithRatio:(CGFloat)ratio child:(id<ASLayoutable>)child;
|
||||
+ (instancetype)ratioLayoutSpecWithRatio:(CGFloat)ratio child:(id<ASLayoutable>)child traitCollection:(nullable ASTraitCollection *)traitCollection;
|
||||
|
||||
@end
|
||||
|
||||
|
@ -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<ASLayoutable>)child
|
||||
{
|
||||
return [self ratioLayoutSpecWithRatio:ratio child:child traitCollection:nil];
|
||||
return [[self alloc] initWithRatio:ratio child:child];
|
||||
}
|
||||
|
||||
+ (instancetype)ratioLayoutSpecWithRatio:(CGFloat)ratio child:(id<ASLayoutable>)child traitCollection:(ASTraitCollection *)traitCollection
|
||||
{
|
||||
return [[self alloc] initWithRatio:ratio child:child traitCollection:traitCollection];
|
||||
}
|
||||
|
||||
- (instancetype)initWithRatio:(CGFloat)ratio child:(id<ASLayoutable>)child traitCollection:(ASTraitCollection *)traitCollection
|
||||
- (instancetype)initWithRatio:(CGFloat)ratio child:(id<ASLayoutable>)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;
|
||||
}
|
||||
|
||||
|
@ -54,12 +54,6 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
sizingOption:(ASRelativeLayoutSpecSizingOption)sizingOption
|
||||
child:(id<ASLayoutable>)child;
|
||||
|
||||
+ (instancetype)relativePositionLayoutSpecWithHorizontalPosition:(ASRelativeLayoutSpecPosition)horizontalPosition
|
||||
verticalPosition:(ASRelativeLayoutSpecPosition)verticalPosition
|
||||
sizingOption:(ASRelativeLayoutSpecSizingOption)sizingOption
|
||||
child:(id<ASLayoutable>)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<ASLayoutable>)child
|
||||
traitCollection:(nullable ASTraitCollection *)traitCollection;
|
||||
child:(id<ASLayoutable>)child;
|
||||
|
||||
@end
|
||||
|
||||
|
@ -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<ASLayoutable>)child
|
||||
traitCollection:(ASTraitCollection *)traitCollection
|
||||
- (instancetype)initWithHorizontalPosition:(ASRelativeLayoutSpecPosition)horizontalPosition verticalPosition:(ASRelativeLayoutSpecPosition)verticalPosition sizingOption:(ASRelativeLayoutSpecSizingOption)sizingOption child:(id<ASLayoutable>)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<ASLayoutable>)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<ASLayoutable>)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
|
||||
|
@ -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<id<ASLayoutable>> *)children;
|
||||
|
||||
+ (instancetype)stackLayoutSpecWithDirection:(ASStackLayoutDirection)direction
|
||||
spacing:(CGFloat)spacing
|
||||
justifyContent:(ASStackLayoutJustifyContent)justifyContent
|
||||
alignItems:(ASStackLayoutAlignItems)alignItems
|
||||
children:(NSArray<id<ASLayoutable>> *)children
|
||||
traitCollection:(nullable ASTraitCollection *)traitCollection;
|
||||
+ (instancetype)stackLayoutSpecWithDirection:(ASStackLayoutDirection)direction spacing:(CGFloat)spacing justifyContent:(ASStackLayoutJustifyContent)justifyContent alignItems:(ASStackLayoutAlignItems)alignItems children:(NSArray<id<ASLayoutable>> *)children;
|
||||
|
||||
/**
|
||||
* @return A stack layout spec with direction of ASStackLayoutDirectionVertical
|
||||
|
@ -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<id<ASLayoutable>> *)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;
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,6 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
@param children Children to be positioned at fixed positions, each conforms to ASStaticLayoutable
|
||||
*/
|
||||
+ (instancetype)staticLayoutSpecWithChildren:(NSArray<id<ASStaticLayoutable>> *)children;
|
||||
+ (instancetype)staticLayoutSpecWithChildren:(NSArray<id<ASStaticLayoutable>> *)children traitCollection:(nullable ASTraitCollection *)traitCollection;
|
||||
|
||||
@end
|
||||
|
||||
|
@ -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<id<ASStaticLayoutable>> *)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;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user