ASLayoutSpec Class Reference
| Inherits from | NSObject |
|---|---|
| Conforms to | ASLayoutable |
| Declared in | ASLayoutSpec.h |
isMutable
Creation of a layout spec should only happen by a user in layoutSpecThatFits:. During that method, a layout spec can be created and mutated. Once it is passed back to ASDK, the isMutable flag will be set to NO and any further mutations will cause an assert.
@property (nonatomic, assign) BOOL isMutableDeclared In
ASLayoutSpec.h
parent
Parent of the layout spec
@property (nullable, nonatomic, weak) id<ASLayoutable> parentDeclared In
ASLayoutSpec.h
– setChild:
Adds a child to this layout spec using a default identifier.
- (void)setChild:(id<ASLayoutable>)childParameters
child |
A child to be added. |
|---|
Discussion
Every ASLayoutSpec must act on at least one child. The ASLayoutSpec base class takes the responsibility of holding on to the spec children. Some layout specs, like ASInsetLayoutSpec, only require a single child.
For layout specs that require a known number of children (ASBackgroundLayoutSpec, for example) a subclass should use this method to set the “primary” child. This is actually the same as calling setChild:forIdentifier:0. All other children should be set by defining convenience methods that call setChild:forIdentifier behind the scenes.
Declared In
ASLayoutSpec.h
– setChild:forIndex:
Adds a child with the given identifier to this layout spec.
- (void)setChild:(id<ASLayoutable>)child forIndex:(NSUInteger)indexParameters
child |
A child to be added. |
|---|---|
index |
An index associated with the child. |
Discussion
Every ASLayoutSpec must act on at least one child. The ASLayoutSpec base class takes the responsibility of holding on to the spec children. Some layout specs, like ASInsetLayoutSpec, only require a single child.
For layout specs that require a known number of children (ASBackgroundLayoutSpec, for example) a subclass can use the setChild method to set the “primary” child. It should then use this method to set any other required children. Ideally a subclass would hide this from the user, and use the setChild:forIndex: internally. For example, ASBackgroundLayoutSpec exposes a backgroundChild property that behind the scenes is calling setChild:forIndex:.
Declared In
ASLayoutSpec.h
– setChildren:
Adds childen to this layout spec.
- (void)setChildren:(NSArray<id<ASLayoutable> > *)childrenParameters
children |
An array of ASLayoutable children to be added. |
|---|
Discussion
Every ASLayoutSpec must act on at least one child. The ASLayoutSpec base class takes the reponsibility of holding on to the spec children. Some layout specs, like ASStackLayoutSpec, can take an unknown number of children. In this case, the this method should be used. For good measure, in these layout specs it probably makes sense to define setChild: and setChild:forIdentifier: methods to do something appropriate or to assert.
Declared In
ASLayoutSpec.h
– child
Returns the child added to this layout spec using the default identifier.
- (nullable id<ASLayoutable>)childDeclared In
ASLayoutSpec.h
– childForIndex:
Returns the child added to this layout spec using the given index.
- (nullable id<ASLayoutable>)childForIndex:(NSUInteger)indexParameters
index |
An identifier associated withe the child. |
|---|
Declared In
ASLayoutSpec.h
– children
Returns all children added to this layout spec.
- (nullable NSArray<id<ASLayoutable> > *)childrenDeclared In
ASLayoutSpec.h