ASLayoutable Protocol Reference
| Conforms to | ASEnvironment ASLayoutableExtensibility ASLayoutablePrivate ASStackLayoutable ASStaticLayoutable |
|---|---|
| Declared in | ASLayoutable.h |
Overview
The ASLayoutable protocol declares a method for measuring the layout of an object. A layout is defined by an ASLayout return value, and must specify 1) the size (but not position) of the layoutable object, and 2) the size and position of all of its immediate child objects. The tree recursion is driven by parents requesting layouts from their children in order to determine their size, followed by the parents setting the position of the children once the size is known
The protocol also implements a “family” of Layoutable protocols. These protocols contain layout options that can be used for specific layout specs. For example, ASStackLayoutSpec has options defining how a layoutable should shrink or grow based upon available space.
These layout options are all stored in an ASLayoutOptions class (that is defined in ASLayoutablePrivate). Generally you needn’t worry about the layout options class, as the layoutable protocols allow all direct access to the options via convenience properties. If you are creating custom layout spec, then you can extend the backing layout options class to accommodate any new layout options.
layoutableType
required method
Returns type of layoutable
@property (nonatomic, readonly) ASLayoutableType layoutableTypeDeclared In
ASLayoutable.h
canLayoutAsynchronous
required method
Returns if the layoutable can be used to layout in an asynchronous way on a background thread.
@property (nonatomic, readonly) BOOL canLayoutAsynchronousDeclared In
ASLayoutable.h
– measureWithSizeRange:
required method
Calculate a layout based on given size range.
- (ASLayout *)measureWithSizeRange:(ASSizeRange)constrainedSizeParameters
constrainedSize |
The minimum and maximum sizes the receiver should fit in. |
|---|
Return Value
An ASLayout instance defining the layout of the receiver and its children.
Declared In
ASLayoutable.h
spacingBefore
required method
Additional space to place before this object in the stacking direction. Used when attached to a stack layout.
@property (nonatomic, readwrite) CGFloat spacingBeforeDeclared In
ASLayoutable.h
spacingAfter
required method
Additional space to place after this object in the stacking direction. Used when attached to a stack layout.
@property (nonatomic, readwrite) CGFloat spacingAfterDeclared In
ASLayoutable.h
flexGrow
required method
If the sum of childrens' stack dimensions is less than the minimum size, should this object grow? Used when attached to a stack layout.
@property (nonatomic, readwrite) BOOL flexGrowDeclared In
ASLayoutable.h
flexShrink
required method
If the sum of childrens' stack dimensions is greater than the maximum size, should this object shrink? Used when attached to a stack layout.
@property (nonatomic, readwrite) BOOL flexShrinkDeclared In
ASLayoutable.h
flexBasis
required method
Specifies the initial size in the stack dimension for this object. Default to ASRelativeDimensionUnconstrained. Used when attached to a stack layout.
@property (nonatomic, readwrite) ASRelativeDimension flexBasisDeclared In
ASLayoutable.h
alignSelf
required method
Orientation of the object along cross axis, overriding alignItems Used when attached to a stack layout.
@property (nonatomic, readwrite) ASStackLayoutAlignSelf alignSelfDeclared In
ASLayoutable.h
ascender
required method
Used for baseline alignment. The distance from the top of the object to its baseline.
@property (nonatomic, readwrite) CGFloat ascenderDeclared In
ASLayoutable.h
descender
required method
Used for baseline alignment. The distance from the baseline of the object to its bottom.
@property (nonatomic, readwrite) CGFloat descenderDeclared In
ASLayoutable.h
sizeRange
required method
If specified, the child’s size is restricted according to this size. Percentages are resolved relative to the static layout spec.
@property (nonatomic, assign) ASRelativeSizeRange sizeRangeDeclared In
ASLayoutable.h
layoutPosition
required method
The position of this object within its parent spec.
@property (nonatomic, assign) CGPoint layoutPositionDeclared In
ASLayoutable.h