AsyncDisplayKit is now Texture! LEARN MORE

Texture

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.
CGFloat .style.flexGrow If the sum of children's stack dimensions is less than the minimum size, should this object grow?
CGFloat .style.flexShrink If the sum of children's 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