ASLayoutElementStyle Class Reference

Inherits from NSObject
Conforms to ASAbsoluteLayoutElement
ASStackLayoutElement
Declared in ASLayoutElement.h

– initWithDelegate:

Initializes the layoutElement style with a specified delegate

- (instancetype)initWithDelegate:(id<ASLayoutElementStyleDelegate>)delegate

Declared In

ASLayoutElement.h

  delegate

The object that acts as the delegate of the style.

@property (nullable, nonatomic, weak, readonly) id<ASLayoutElementStyleDelegate> delegate

Discussion

The delegate must adopt the ASLayoutElementStyleDelegate protocol. The delegate is not retained.

Declared In

ASLayoutElement.h

  width

The width property specifies the height of the content area of an ASLayoutElement. The minWidth and maxWidth properties override width. Defaults to ASDimensionAuto

@property (nonatomic, assign, readwrite) ASDimension width

Declared In

ASLayoutElement.h

  height

The height property specifies the height of the content area of an ASLayoutElement The minHeight and maxHeight properties override height. Defaults to ASDimensionAuto

@property (nonatomic, assign, readwrite) ASDimension height

Declared In

ASLayoutElement.h

  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

@property (nonatomic, assign, readwrite) ASDimension minHeight

Declared In

ASLayoutElement.h

  maxHeight

The maxHeight property is used to set the maximum height of an 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

@property (nonatomic, assign, readwrite) ASDimension maxHeight

Declared In

ASLayoutElement.h

  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

@property (nonatomic, assign, readwrite) ASDimension minWidth

Declared In

ASLayoutElement.h

  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

@property (nonatomic, assign, readwrite) ASDimension maxWidth

Declared In

ASLayoutElement.h

  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:

@property (nonatomic, assign) CGSize preferredSize

Discussion

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.

Declared In

ASLayoutElement.h

  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.

@property (nonatomic, assign) CGSize minSize

Discussion

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.

Declared In

ASLayoutElement.h

  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.

@property (nonatomic, assign) CGSize maxSize

Discussion

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.

Declared In

ASLayoutElement.h

  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:

@property (nonatomic, assign, readwrite) ASLayoutSize preferredLayoutSize

Declared In

ASLayoutElement.h

  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.

@property (nonatomic, assign, readwrite) ASLayoutSize minLayoutSize

Declared In

ASLayoutElement.h

  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.

@property (nonatomic, assign, readwrite) ASLayoutSize maxLayoutSize

Declared In

ASLayoutElement.h