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 layoutableType

Declared 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 canLayoutAsynchronous

Declared In

ASLayoutable.h

– measureWithSizeRange: required method

Calculate a layout based on given size range.

- (ASLayout *)measureWithSizeRange:(ASSizeRange)constrainedSize

Parameters

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 spacingBefore

Declared 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 spacingAfter

Declared 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 flexGrow

Declared 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 flexShrink

Declared 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 flexBasis

Declared 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 alignSelf

Declared 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 ascender

Declared 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 descender

Declared 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 sizeRange

Declared In

ASLayoutable.h

  layoutPosition required method

The position of this object within its parent spec.

@property (nonatomic, assign) CGPoint layoutPosition

Declared In

ASLayoutable.h