AsyncDisplayKit

Layout Element Properties

ASStackLayoutElement Properties

Please note that the following properties will only take effect if set on the child of an STACK layout spec.
Property Description
`CGFloat .style.spacingBefore` Additional space to place before this object in the stacking direction.
`CGFloat .style.spacingAfter` Additional space to place after this object in the stacking direction.
`BOOL .style.flexGrow` If the sum of childrens' stack dimensions is less than the minimum size, should this object grow?
`BOOL .style.flexShrink` If the sum of childrens' stack dimensions is greater than the maximum size, should this object shrink?
`ASDimension .style.flexBasis` Specifies the initial size for this object, in the stack dimension (horizontal or vertical), before the `flexGrow` / `flexShrink` properties are applied and the remaining space is distributed.
`ASStackLayoutAlignSelf .style.alignSelf` Orientation of the object along cross axis, overriding alignItems. Options include:
  • `ASStackLayoutAlignSelfAuto`
  • `ASStackLayoutAlignSelfStart`
  • `ASStackLayoutAlignSelfEnd`
  • `ASStackLayoutAlignSelfCenter`
  • `ASStackLayoutAlignSelfStretch`
`CGFloat .style.ascender` Used for baseline alignment. The distance from the top of the object to its baseline.
`CGFloat .style.descender` Used for baseline alignment. The distance from the baseline of the object to its bottom.

ASAbsoluteLayoutElement Properties

Please note that the following properties will only take effect if set on the child of an ABSOLUTE layout spec.
Property Description
`CGPoint .style.layoutPosition` The `CGPoint` position of this object within its `ASAbsoluteLayoutSpec` parent spec.

ASLayoutElement Properties

Please note that the following properties apply to ALL layout elements.
Property Description
`ASDimension .style.width` The `width` property specifies the width of the content area of an `ASLayoutElement`. The `minWidth` and `maxWidth` properties override `width`. Defaults to `ASDimensionAuto`.
`ASDimension .style.height` The `height` property specifies the height of the content area of an `ASLayoutElement`. The `minHeight` and `maxHeight` properties override `height`. Defaults to `ASDimensionAuto`.
`ASDimension .style.minWidth` The `minWidth` property is used to set the minimum width of a given element. It prevents the used value of the `width` property from becoming smaller than the value specified for `minWidth`. The value of `minWidth` overrides both `maxWidth` and `width`. Defaults to `ASDimensionAuto`.
`ASDimension .style.maxWidth` The `maxWidth` property is used to set the maximum width of a given element. It prevents the used value of the `width` property from becoming larger than the value specified for `maxWidth`. The value of `maxWidth` overrides `width`, but `minWidth` overrides `maxWidth`. Defaults to `ASDimensionAuto`.
`ASDimension .style.minHeight` The `minHeight` property is used to set the minimum height of a given element. It prevents the used value of the `height` property from becoming smaller than the value specified for `minHeight`. The value of `minHeight` overrides both `maxHeight` and `height`. Defaults to `ASDimensionAuto`.
`ASDimension .style.maxHeight` The `maxHeight` property is used to set the maximum height of a given element. It prevents the used value of the `height` property from becoming larger than the value specified for `maxHeight`. The value of `maxHeight` overrides `height`, but `minHeight` overrides `maxHeight`. Defaults to `ASDimensionAuto`
`CGSize .style.preferredSize`

Provides a suggested size for a layout element. If the optional minSize or maxSize are provided, and the preferredSize exceeds these, the minSize or maxSize will be enforced. If this optional value is not provided, the layout element’s size will default to it’s intrinsic content size provided calculateSizeThatFits:

This method is optional, but one of either preferredSize or preferredLayoutSize is required for nodes that either have no intrinsic content size or should be laid out at a different size than its intrinsic content size. For example, this property could be set on an ASImageNode to display at a size different from the underlying image size.

Warning: calling the getter when the size's width or height are relative will cause an assert.

`CGSize .style.minSize`

An optional property that provides a minimum size bound for a layout element. If provided, this restriction will always be enforced. If a parent layout element’s minimum size is smaller than its child’s minimum size, the child’s minimum size will be enforced and its size will extend out of the layout spec’s.

For example, if you set a preferred relative width of 50% and a minimum width of 200 points on an element in a full screen container, this would result in a width of 160 points on an iPhone screen. However, since 160 pts is lower than the minimum width of 200 pts, the minimum width would be used.

`CGSize .style.maxSize`

An optional property that provides a maximum size bound for a layout element. If provided, this restriction will always be enforced. If a child layout element’s maximum size is smaller than its parent, the child’s maximum size will be enforced and its size will extend out of the layout spec’s.

For example, if you set a preferred relative width of 50% and a maximum width of 120 points on an element in a full screen container, this would result in a width of 160 points on an iPhone screen. However, since 160 pts is higher than the maximum width of 120 pts, the maximum width would be used.

`ASLayoutSize .style.preferredLayoutSize` Provides a suggested RELATIVE size for a layout element. An ASLayoutSize uses percentages rather than points to specify layout. E.g. width should be 50% of the parent’s width. If the optional minLayoutSize or maxLayoutSize are provided, and the preferredLayoutSize exceeds these, the minLayoutSize or maxLayoutSize will be enforced. If this optional value is not provided, the layout element’s size will default to its intrinsic content size provided `calculateSizeThatFits:`
`ASLayoutSize .style.minLayoutSize` An optional property that provides a minimum RELATIVE size bound for a layout element. If provided, this restriction will always be enforced. If a parent layout element’s minimum relative size is smaller than its child’s minimum relative size, the child’s minimum relative size will be enforced and its size will extend out of the layout spec’s.
`ASLayoutSize .style.maxLayoutSize` An optional property that provides a maximum RELATIVE size bound for a layout element. If provided, this restriction will always be enforced. If a parent layout element’s maximum relative size is smaller than its child’s maximum relative size, the child’s maximum relative size will be enforced and its size will extend out of the layout spec’s.

Edit on GitHub