[ASLayout] Cache constrained size range

This commit is contained in:
Levi McCallum
2016-05-20 12:31:10 -07:00
parent 4804f429b9
commit c469ad273b
13 changed files with 82 additions and 18 deletions

View File

@@ -40,6 +40,11 @@ extern BOOL CGPointIsNull(CGPoint point);
*/
@property (nonatomic, readwrite) CGPoint position;
/**
* The size range that was use to determine the size of the layout.
*/
@property (nonatomic, readonly) ASSizeRange constrainedSizeRange;
/**
* Array of ASLayouts. Each must have a valid non-null position.
*/
@@ -67,6 +72,7 @@ extern BOOL CGPointIsNull(CGPoint point);
* @param sublayouts Sublayouts belong to the new layout.
*/
+ (instancetype)layoutWithLayoutableObject:(id<ASLayoutable>)layoutableObject
constrainedSizeRange:(ASSizeRange)sizeRange
size:(CGSize)size
position:(CGPoint)position
sublayouts:(nullable NSArray<ASLayout *> *)sublayouts
@@ -85,6 +91,7 @@ extern BOOL CGPointIsNull(CGPoint point);
* @param sublayouts Sublayouts belong to the new layout.
*/
+ (instancetype)layoutWithLayoutableObject:(id<ASLayoutable>)layoutableObject
constrainedSizeRange:(ASSizeRange)sizeRange
size:(CGSize)size
sublayouts:(nullable NSArray<ASLayout *> *)sublayouts;
@@ -97,7 +104,9 @@ extern BOOL CGPointIsNull(CGPoint point);
*
* @param size The size of this layout.
*/
+ (instancetype)layoutWithLayoutableObject:(id<ASLayoutable>)layoutableObject size:(CGSize)size;
+ (instancetype)layoutWithLayoutableObject:(id<ASLayoutable>)layoutableObject
constrainedSizeRange:(ASSizeRange)sizeRange
size:(CGSize)size;
/**
* Convenience initializer that is flattened and has CGPointNull position.
@@ -109,6 +118,7 @@ extern BOOL CGPointIsNull(CGPoint point);
* @param sublayouts Sublayouts belong to the new layout.
*/
+ (instancetype)flattenedLayoutWithLayoutableObject:(id<ASLayoutable>)layoutableObject
constrainedSizeRange:(ASSizeRange)sizeRange
size:(CGSize)size
sublayouts:(nullable NSArray<ASLayout *> *)sublayouts;