mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 22:25:57 +00:00
Clean up #468:
- -layoutSpecThatFits: must return an ASLayoutSpec. - Move ASDisplayNode's -measureWithSizeRange: redeclaration to ASDisplayNode.h. - Rename ASStackLayoutChild.h to ASStackLayoutDefines.h. - Rename ASStaticLayoutSpecDimension.h to ASRelativeSize.h. - Don't import ASLayout.h in other headers to prevent circular inclusions. - Explain use cases of ASLayout's initializers. - Clean up ASInternalHelpers.h.
This commit is contained in:
@@ -187,13 +187,13 @@
|
|||||||
509E68661B3AEDD7009B9150 /* CGRect+ASConvenience.m in Sources */ = {isa = PBXBuildFile; fileRef = 205F0E201B376416007741D0 /* CGRect+ASConvenience.m */; };
|
509E68661B3AEDD7009B9150 /* CGRect+ASConvenience.m in Sources */ = {isa = PBXBuildFile; fileRef = 205F0E201B376416007741D0 /* CGRect+ASConvenience.m */; };
|
||||||
6BDC61F61979037800E50D21 /* AsyncDisplayKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BDC61F51978FEA400E50D21 /* AsyncDisplayKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
6BDC61F61979037800E50D21 /* AsyncDisplayKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BDC61F51978FEA400E50D21 /* AsyncDisplayKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
9F06E5CD1B4CAF4200F015D8 /* ASCollectionViewTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F06E5CC1B4CAF4200F015D8 /* ASCollectionViewTests.m */; };
|
9F06E5CD1B4CAF4200F015D8 /* ASCollectionViewTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F06E5CC1B4CAF4200F015D8 /* ASCollectionViewTests.m */; };
|
||||||
AC21EC101B3D0BF600C8B19A /* ASStackLayoutChild.h in Headers */ = {isa = PBXBuildFile; fileRef = AC21EC0F1B3D0BF600C8B19A /* ASStackLayoutChild.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
AC21EC101B3D0BF600C8B19A /* ASStackLayoutDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = AC21EC0F1B3D0BF600C8B19A /* ASStackLayoutDefines.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
AC3C4A511A1139C100143C57 /* ASCollectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = AC3C4A4F1A1139C100143C57 /* ASCollectionView.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
AC3C4A511A1139C100143C57 /* ASCollectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = AC3C4A4F1A1139C100143C57 /* ASCollectionView.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
AC3C4A521A1139C100143C57 /* ASCollectionView.mm in Sources */ = {isa = PBXBuildFile; fileRef = AC3C4A501A1139C100143C57 /* ASCollectionView.mm */; };
|
AC3C4A521A1139C100143C57 /* ASCollectionView.mm in Sources */ = {isa = PBXBuildFile; fileRef = AC3C4A501A1139C100143C57 /* ASCollectionView.mm */; };
|
||||||
AC3C4A541A113EEC00143C57 /* ASCollectionViewProtocols.h in Headers */ = {isa = PBXBuildFile; fileRef = AC3C4A531A113EEC00143C57 /* ASCollectionViewProtocols.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
AC3C4A541A113EEC00143C57 /* ASCollectionViewProtocols.h in Headers */ = {isa = PBXBuildFile; fileRef = AC3C4A531A113EEC00143C57 /* ASCollectionViewProtocols.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
AC47D9421B3B891B00AAEE9D /* ASCellNode.m in Sources */ = {isa = PBXBuildFile; fileRef = AC6456071B0A335000CF11B8 /* ASCellNode.m */; };
|
AC47D9421B3B891B00AAEE9D /* ASCellNode.m in Sources */ = {isa = PBXBuildFile; fileRef = AC6456071B0A335000CF11B8 /* ASCellNode.m */; };
|
||||||
AC47D9451B3BB41900AAEE9D /* ASStaticLayoutSpecDimension.h in Headers */ = {isa = PBXBuildFile; fileRef = AC47D9431B3BB41900AAEE9D /* ASStaticLayoutSpecDimension.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
AC47D9451B3BB41900AAEE9D /* ASRelativeSize.h in Headers */ = {isa = PBXBuildFile; fileRef = AC47D9431B3BB41900AAEE9D /* ASRelativeSize.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
AC47D9461B3BB41900AAEE9D /* ASStaticLayoutSpecDimension.mm in Sources */ = {isa = PBXBuildFile; fileRef = AC47D9441B3BB41900AAEE9D /* ASStaticLayoutSpecDimension.mm */; };
|
AC47D9461B3BB41900AAEE9D /* ASRelativeSize.mm in Sources */ = {isa = PBXBuildFile; fileRef = AC47D9441B3BB41900AAEE9D /* ASRelativeSize.mm */; };
|
||||||
AC6456091B0A335000CF11B8 /* ASCellNode.m in Sources */ = {isa = PBXBuildFile; fileRef = AC6456071B0A335000CF11B8 /* ASCellNode.m */; };
|
AC6456091B0A335000CF11B8 /* ASCellNode.m in Sources */ = {isa = PBXBuildFile; fileRef = AC6456071B0A335000CF11B8 /* ASCellNode.m */; };
|
||||||
ACF6ED1A1B17843500DA7C62 /* ASBackgroundLayoutSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = ACF6ED011B17843500DA7C62 /* ASBackgroundLayoutSpec.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
ACF6ED1A1B17843500DA7C62 /* ASBackgroundLayoutSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = ACF6ED011B17843500DA7C62 /* ASBackgroundLayoutSpec.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
ACF6ED1B1B17843500DA7C62 /* ASBackgroundLayoutSpec.mm in Sources */ = {isa = PBXBuildFile; fileRef = ACF6ED021B17843500DA7C62 /* ASBackgroundLayoutSpec.mm */; };
|
ACF6ED1B1B17843500DA7C62 /* ASBackgroundLayoutSpec.mm in Sources */ = {isa = PBXBuildFile; fileRef = ACF6ED021B17843500DA7C62 /* ASBackgroundLayoutSpec.mm */; };
|
||||||
@@ -526,12 +526,12 @@
|
|||||||
4640521F1A3F83C40061C0BA /* ASMultidimensionalArrayUtils.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ASMultidimensionalArrayUtils.mm; sourceTree = "<group>"; };
|
4640521F1A3F83C40061C0BA /* ASMultidimensionalArrayUtils.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ASMultidimensionalArrayUtils.mm; sourceTree = "<group>"; };
|
||||||
6BDC61F51978FEA400E50D21 /* AsyncDisplayKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AsyncDisplayKit.h; sourceTree = "<group>"; };
|
6BDC61F51978FEA400E50D21 /* AsyncDisplayKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AsyncDisplayKit.h; sourceTree = "<group>"; };
|
||||||
9F06E5CC1B4CAF4200F015D8 /* ASCollectionViewTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASCollectionViewTests.m; sourceTree = "<group>"; };
|
9F06E5CC1B4CAF4200F015D8 /* ASCollectionViewTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASCollectionViewTests.m; sourceTree = "<group>"; };
|
||||||
AC21EC0F1B3D0BF600C8B19A /* ASStackLayoutChild.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ASStackLayoutChild.h; path = AsyncDisplayKit/Layout/ASStackLayoutChild.h; sourceTree = "<group>"; };
|
AC21EC0F1B3D0BF600C8B19A /* ASStackLayoutDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ASStackLayoutDefines.h; path = AsyncDisplayKit/Layout/ASStackLayoutDefines.h; sourceTree = "<group>"; };
|
||||||
AC3C4A4F1A1139C100143C57 /* ASCollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASCollectionView.h; sourceTree = "<group>"; };
|
AC3C4A4F1A1139C100143C57 /* ASCollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASCollectionView.h; sourceTree = "<group>"; };
|
||||||
AC3C4A501A1139C100143C57 /* ASCollectionView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ASCollectionView.mm; sourceTree = "<group>"; };
|
AC3C4A501A1139C100143C57 /* ASCollectionView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ASCollectionView.mm; sourceTree = "<group>"; };
|
||||||
AC3C4A531A113EEC00143C57 /* ASCollectionViewProtocols.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASCollectionViewProtocols.h; sourceTree = "<group>"; };
|
AC3C4A531A113EEC00143C57 /* ASCollectionViewProtocols.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASCollectionViewProtocols.h; sourceTree = "<group>"; };
|
||||||
AC47D9431B3BB41900AAEE9D /* ASStaticLayoutSpecDimension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ASStaticLayoutSpecDimension.h; path = AsyncDisplayKit/Layout/ASStaticLayoutSpecDimension.h; sourceTree = "<group>"; };
|
AC47D9431B3BB41900AAEE9D /* ASRelativeSize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ASRelativeSize.h; path = AsyncDisplayKit/Layout/ASRelativeSize.h; sourceTree = "<group>"; };
|
||||||
AC47D9441B3BB41900AAEE9D /* ASStaticLayoutSpecDimension.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = ASStaticLayoutSpecDimension.mm; path = AsyncDisplayKit/Layout/ASStaticLayoutSpecDimension.mm; sourceTree = "<group>"; };
|
AC47D9441B3BB41900AAEE9D /* ASRelativeSize.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = ASRelativeSize.mm; path = AsyncDisplayKit/Layout/ASRelativeSize.mm; sourceTree = "<group>"; };
|
||||||
AC6456071B0A335000CF11B8 /* ASCellNode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASCellNode.m; sourceTree = "<group>"; };
|
AC6456071B0A335000CF11B8 /* ASCellNode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASCellNode.m; sourceTree = "<group>"; };
|
||||||
ACF6ED011B17843500DA7C62 /* ASBackgroundLayoutSpec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ASBackgroundLayoutSpec.h; path = AsyncDisplayKit/Layout/ASBackgroundLayoutSpec.h; sourceTree = "<group>"; };
|
ACF6ED011B17843500DA7C62 /* ASBackgroundLayoutSpec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ASBackgroundLayoutSpec.h; path = AsyncDisplayKit/Layout/ASBackgroundLayoutSpec.h; sourceTree = "<group>"; };
|
||||||
ACF6ED021B17843500DA7C62 /* ASBackgroundLayoutSpec.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 0; name = ASBackgroundLayoutSpec.mm; path = AsyncDisplayKit/Layout/ASBackgroundLayoutSpec.mm; sourceTree = "<group>"; };
|
ACF6ED021B17843500DA7C62 /* ASBackgroundLayoutSpec.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; lineEnding = 0; name = ASBackgroundLayoutSpec.mm; path = AsyncDisplayKit/Layout/ASBackgroundLayoutSpec.mm; sourceTree = "<group>"; };
|
||||||
@@ -914,6 +914,8 @@
|
|||||||
ACF6ED041B17843500DA7C62 /* ASCenterLayoutSpec.mm */,
|
ACF6ED041B17843500DA7C62 /* ASCenterLayoutSpec.mm */,
|
||||||
ACF6ED071B17843500DA7C62 /* ASDimension.h */,
|
ACF6ED071B17843500DA7C62 /* ASDimension.h */,
|
||||||
ACF6ED081B17843500DA7C62 /* ASDimension.mm */,
|
ACF6ED081B17843500DA7C62 /* ASDimension.mm */,
|
||||||
|
AC47D9431B3BB41900AAEE9D /* ASRelativeSize.h */,
|
||||||
|
AC47D9441B3BB41900AAEE9D /* ASRelativeSize.mm */,
|
||||||
ACF6ED091B17843500DA7C62 /* ASInsetLayoutSpec.h */,
|
ACF6ED091B17843500DA7C62 /* ASInsetLayoutSpec.h */,
|
||||||
ACF6ED0A1B17843500DA7C62 /* ASInsetLayoutSpec.mm */,
|
ACF6ED0A1B17843500DA7C62 /* ASInsetLayoutSpec.mm */,
|
||||||
ACF6ED0B1B17843500DA7C62 /* ASLayout.h */,
|
ACF6ED0B1B17843500DA7C62 /* ASLayout.h */,
|
||||||
@@ -925,13 +927,11 @@
|
|||||||
ACF6ED131B17843500DA7C62 /* ASOverlayLayoutSpec.mm */,
|
ACF6ED131B17843500DA7C62 /* ASOverlayLayoutSpec.mm */,
|
||||||
ACF6ED141B17843500DA7C62 /* ASRatioLayoutSpec.h */,
|
ACF6ED141B17843500DA7C62 /* ASRatioLayoutSpec.h */,
|
||||||
ACF6ED151B17843500DA7C62 /* ASRatioLayoutSpec.mm */,
|
ACF6ED151B17843500DA7C62 /* ASRatioLayoutSpec.mm */,
|
||||||
AC21EC0F1B3D0BF600C8B19A /* ASStackLayoutChild.h */,
|
AC21EC0F1B3D0BF600C8B19A /* ASStackLayoutDefines.h */,
|
||||||
ACF6ED161B17843500DA7C62 /* ASStackLayoutSpec.h */,
|
ACF6ED161B17843500DA7C62 /* ASStackLayoutSpec.h */,
|
||||||
ACF6ED171B17843500DA7C62 /* ASStackLayoutSpec.mm */,
|
ACF6ED171B17843500DA7C62 /* ASStackLayoutSpec.mm */,
|
||||||
ACF6ED181B17843500DA7C62 /* ASStaticLayoutSpec.h */,
|
ACF6ED181B17843500DA7C62 /* ASStaticLayoutSpec.h */,
|
||||||
ACF6ED191B17843500DA7C62 /* ASStaticLayoutSpec.mm */,
|
ACF6ED191B17843500DA7C62 /* ASStaticLayoutSpec.mm */,
|
||||||
AC47D9431B3BB41900AAEE9D /* ASStaticLayoutSpecDimension.h */,
|
|
||||||
AC47D9441B3BB41900AAEE9D /* ASStaticLayoutSpecDimension.mm */,
|
|
||||||
);
|
);
|
||||||
name = Layout;
|
name = Layout;
|
||||||
path = ..;
|
path = ..;
|
||||||
@@ -971,8 +971,8 @@
|
|||||||
isa = PBXHeadersBuildPhase;
|
isa = PBXHeadersBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
AC21EC101B3D0BF600C8B19A /* ASStackLayoutChild.h in Headers */,
|
AC21EC101B3D0BF600C8B19A /* ASStackLayoutDefines.h in Headers */,
|
||||||
AC47D9451B3BB41900AAEE9D /* ASStaticLayoutSpecDimension.h in Headers */,
|
AC47D9451B3BB41900AAEE9D /* ASRelativeSize.h in Headers */,
|
||||||
ACF6ED511B17847A00DA7C62 /* ASStackUnpositionedLayout.h in Headers */,
|
ACF6ED511B17847A00DA7C62 /* ASStackUnpositionedLayout.h in Headers */,
|
||||||
ACF6ED2D1B17843500DA7C62 /* ASRatioLayoutSpec.h in Headers */,
|
ACF6ED2D1B17843500DA7C62 /* ASRatioLayoutSpec.h in Headers */,
|
||||||
ACF6ED261B17843500DA7C62 /* ASLayoutSpec.h in Headers */,
|
ACF6ED261B17843500DA7C62 /* ASLayoutSpec.h in Headers */,
|
||||||
@@ -1374,7 +1374,7 @@
|
|||||||
ACF6ED1B1B17843500DA7C62 /* ASBackgroundLayoutSpec.mm in Sources */,
|
ACF6ED1B1B17843500DA7C62 /* ASBackgroundLayoutSpec.mm in Sources */,
|
||||||
055F1A3519ABD3E3004DAFF1 /* ASTableView.mm in Sources */,
|
055F1A3519ABD3E3004DAFF1 /* ASTableView.mm in Sources */,
|
||||||
205F0E121B371BD7007741D0 /* ASScrollDirection.m in Sources */,
|
205F0E121B371BD7007741D0 /* ASScrollDirection.m in Sources */,
|
||||||
AC47D9461B3BB41900AAEE9D /* ASStaticLayoutSpecDimension.mm in Sources */,
|
AC47D9461B3BB41900AAEE9D /* ASRelativeSize.mm in Sources */,
|
||||||
ACF6ED271B17843500DA7C62 /* ASLayoutSpec.mm in Sources */,
|
ACF6ED271B17843500DA7C62 /* ASLayoutSpec.mm in Sources */,
|
||||||
ACF6ED211B17843500DA7C62 /* ASDimension.mm in Sources */,
|
ACF6ED211B17843500DA7C62 /* ASDimension.mm in Sources */,
|
||||||
464052261A3F83C40061C0BA /* ASMultidimensionalArrayUtils.mm in Sources */,
|
464052261A3F83C40061C0BA /* ASMultidimensionalArrayUtils.mm in Sources */,
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ static const CGFloat kFontSize = 18.0f;
|
|||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (id<ASLayoutable>)layoutSpecThatFits:(ASSizeRange)constrainedSize
|
- (ASLayoutSpec *)layoutSpecThatFits:(ASSizeRange)constrainedSize
|
||||||
{
|
{
|
||||||
static const CGFloat kHorizontalPadding = 15.0f;
|
static const CGFloat kHorizontalPadding = 15.0f;
|
||||||
static const CGFloat kVerticalPadding = 11.0f;
|
static const CGFloat kVerticalPadding = 11.0f;
|
||||||
|
|||||||
@@ -13,8 +13,7 @@
|
|||||||
#import <AsyncDisplayKit/ASDisplayNode.h>
|
#import <AsyncDisplayKit/ASDisplayNode.h>
|
||||||
#import <AsyncDisplayKit/ASThread.h>
|
#import <AsyncDisplayKit/ASThread.h>
|
||||||
|
|
||||||
#import <AsyncDisplayKit/ASLayout.h>
|
@class ASLayoutSpec;
|
||||||
#import <AsyncDisplayKit/ASLayoutable.h>
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The subclass header _ASDisplayNode+Subclasses_ defines the following methods that either must or can be overriden by
|
* The subclass header _ASDisplayNode+Subclasses_ defines the following methods that either must or can be overriden by
|
||||||
@@ -36,7 +35,7 @@
|
|||||||
* variables.
|
* variables.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@interface ASDisplayNode (Subclassing) <ASLayoutable>
|
@interface ASDisplayNode (Subclassing)
|
||||||
|
|
||||||
|
|
||||||
/** @name View Configuration */
|
/** @name View Configuration */
|
||||||
@@ -120,23 +119,6 @@
|
|||||||
|
|
||||||
/** @name Layout calculation */
|
/** @name Layout calculation */
|
||||||
|
|
||||||
/**
|
|
||||||
* @abstract Asks the node to measure a layout based on given size range.
|
|
||||||
*
|
|
||||||
* @param constrainedSize The minimum and maximum sizes the receiver should fit in.
|
|
||||||
*
|
|
||||||
* @return An ASLayout instance defining the layout of the receiver (and its children, if the box layout model is used).
|
|
||||||
*
|
|
||||||
* @discussion Though this method does not set the bounds of the view, it does have side effects--caching both the
|
|
||||||
* constraint and the result.
|
|
||||||
*
|
|
||||||
* @warning Subclasses must not override this; it caches results from -calculateLayoutThatFits:. Calling this method may
|
|
||||||
* be expensive if result is not cached.
|
|
||||||
*
|
|
||||||
* @see [ASDisplayNode(Subclassing) calculateLayoutThatFits:]
|
|
||||||
*/
|
|
||||||
- (ASLayout *)measureWithSizeRange:(ASSizeRange)constrainedSize;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @abstract Calculate a layout based on given size range.
|
* @abstract Calculate a layout based on given size range.
|
||||||
*
|
*
|
||||||
@@ -180,7 +162,7 @@
|
|||||||
*
|
*
|
||||||
* @note This method should not be called directly outside of ASDisplayNode; use -measure: or -calculatedLayout instead.
|
* @note This method should not be called directly outside of ASDisplayNode; use -measure: or -calculatedLayout instead.
|
||||||
*/
|
*/
|
||||||
- (id<ASLayoutable>)layoutSpecThatFits:(ASSizeRange)constrainedSize;
|
- (ASLayoutSpec *)layoutSpecThatFits:(ASSizeRange)constrainedSize;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @abstract Invalidate previously measured and cached layout.
|
* @abstract Invalidate previously measured and cached layout.
|
||||||
|
|||||||
@@ -13,6 +13,8 @@
|
|||||||
#import <AsyncDisplayKit/ASDealloc2MainObject.h>
|
#import <AsyncDisplayKit/ASDealloc2MainObject.h>
|
||||||
#import <AsyncDisplayKit/ASDimension.h>
|
#import <AsyncDisplayKit/ASDimension.h>
|
||||||
|
|
||||||
|
#import <AsyncDisplayKit/ASLayoutable.h>
|
||||||
|
|
||||||
typedef UIView *(^ASDisplayNodeViewBlock)();
|
typedef UIView *(^ASDisplayNodeViewBlock)();
|
||||||
typedef CALayer *(^ASDisplayNodeLayerBlock)();
|
typedef CALayer *(^ASDisplayNodeLayerBlock)();
|
||||||
|
|
||||||
@@ -32,7 +34,7 @@ typedef CALayer *(^ASDisplayNodeLayerBlock)();
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@interface ASDisplayNode : ASDealloc2MainObject
|
@interface ASDisplayNode : ASDealloc2MainObject <ASLayoutable>
|
||||||
|
|
||||||
|
|
||||||
/** @name Initializing a node object */
|
/** @name Initializing a node object */
|
||||||
@@ -137,6 +139,23 @@ typedef CALayer *(^ASDisplayNodeLayerBlock)();
|
|||||||
*/
|
*/
|
||||||
- (CGSize)measure:(CGSize)constrainedSize;
|
- (CGSize)measure:(CGSize)constrainedSize;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @abstract Asks the node to measure a layout based on given size range.
|
||||||
|
*
|
||||||
|
* @param constrainedSize The minimum and maximum sizes the receiver should fit in.
|
||||||
|
*
|
||||||
|
* @return An ASLayout instance defining the layout of the receiver (and its children, if the box layout model is used).
|
||||||
|
*
|
||||||
|
* @discussion Though this method does not set the bounds of the view, it does have side effects--caching both the
|
||||||
|
* constraint and the result.
|
||||||
|
*
|
||||||
|
* @warning Subclasses must not override this; it caches results from -calculateLayoutThatFits:. Calling this method may
|
||||||
|
* be expensive if result is not cached.
|
||||||
|
*
|
||||||
|
* @see [ASDisplayNode(Subclassing) calculateLayoutThatFits:]
|
||||||
|
*/
|
||||||
|
- (ASLayout *)measureWithSizeRange:(ASSizeRange)constrainedSize;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @abstract Return the calculated size.
|
* @abstract Return the calculated size.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -19,6 +19,8 @@
|
|||||||
#import "ASDisplayNodeExtras.h"
|
#import "ASDisplayNodeExtras.h"
|
||||||
|
|
||||||
#import "ASInternalHelpers.h"
|
#import "ASInternalHelpers.h"
|
||||||
|
#import "ASLayout.h"
|
||||||
|
#import "ASLayoutSpec.h"
|
||||||
|
|
||||||
@interface ASDisplayNode () <UIGestureRecognizerDelegate>
|
@interface ASDisplayNode () <UIGestureRecognizerDelegate>
|
||||||
|
|
||||||
@@ -1307,10 +1309,10 @@ static NSInteger incrementIfFound(NSInteger i) {
|
|||||||
return CGSizeZero;
|
return CGSizeZero;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (id<ASLayoutable>)layoutSpecThatFits:(ASSizeRange)constrainedSize
|
- (ASLayoutSpec *)layoutSpecThatFits:(ASSizeRange)constrainedSize
|
||||||
{
|
{
|
||||||
ASDisplayNodeAssertThreadAffinity(self);
|
ASDisplayNodeAssertThreadAffinity(self);
|
||||||
return nil;
|
return [ASLayoutSpec new];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (ASLayout *)calculatedLayout
|
- (ASLayout *)calculatedLayout
|
||||||
|
|||||||
@@ -35,5 +35,5 @@
|
|||||||
#import <AsyncDisplayKit/ASOverlayLayoutSpec.h>
|
#import <AsyncDisplayKit/ASOverlayLayoutSpec.h>
|
||||||
#import <AsyncDisplayKit/ASRatioLayoutSpec.h>
|
#import <AsyncDisplayKit/ASRatioLayoutSpec.h>
|
||||||
#import <AsyncDisplayKit/ASStaticLayoutSpec.h>
|
#import <AsyncDisplayKit/ASStaticLayoutSpec.h>
|
||||||
#import <AsyncDisplayKit/ASStackLayoutChild.h>
|
#import <AsyncDisplayKit/ASStackLayoutDefines.h>
|
||||||
#import <AsyncDisplayKit/ASStackLayoutSpec.h>
|
#import <AsyncDisplayKit/ASStackLayoutSpec.h>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
#import "ASAssert.h"
|
#import "ASAssert.h"
|
||||||
#import "ASBaseDefines.h"
|
#import "ASBaseDefines.h"
|
||||||
|
#import "ASLayout.h"
|
||||||
|
|
||||||
@interface ASBackgroundLayoutSpec ()
|
@interface ASBackgroundLayoutSpec ()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
#import "ASCenterLayoutSpec.h"
|
#import "ASCenterLayoutSpec.h"
|
||||||
|
|
||||||
#import "ASInternalHelpers.h"
|
#import "ASInternalHelpers.h"
|
||||||
|
#import "ASLayout.h"
|
||||||
|
|
||||||
@implementation ASCenterLayoutSpec
|
@implementation ASCenterLayoutSpec
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
#import "ASBaseDefines.h"
|
#import "ASBaseDefines.h"
|
||||||
|
|
||||||
#import "ASInternalHelpers.h"
|
#import "ASInternalHelpers.h"
|
||||||
|
#import "ASLayout.h"
|
||||||
|
|
||||||
@interface ASInsetLayoutSpec ()
|
@interface ASInsetLayoutSpec ()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -39,6 +39,9 @@ extern BOOL CGPointIsNull(CGPoint point);
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Convenience that has CGPointNull position.
|
* Convenience that has CGPointNull position.
|
||||||
|
* Best used by ASDisplayNode subclasses that are manually creating a layout for -calculateLayoutThatFits:,
|
||||||
|
* or for ASLayoutSpec subclasses that are referencing the "self" level in the layout tree,
|
||||||
|
* or for creating a sublayout of which the position is yet to be determined.
|
||||||
*/
|
*/
|
||||||
+ (instancetype)newWithLayoutableObject:(id<ASLayoutable>)layoutableObject
|
+ (instancetype)newWithLayoutableObject:(id<ASLayoutable>)layoutableObject
|
||||||
size:(CGSize)size
|
size:(CGSize)size
|
||||||
@@ -46,6 +49,8 @@ extern BOOL CGPointIsNull(CGPoint point);
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Convenience that has CGPointNull position and no sublayouts.
|
* Convenience that has CGPointNull position and no sublayouts.
|
||||||
|
* Best used for creating a layout that has no sublayouts, and is either a root one
|
||||||
|
* or a sublayout of which the position is yet to be determined.
|
||||||
*/
|
*/
|
||||||
+ (instancetype)newWithLayoutableObject:(id<ASLayoutable>)layoutableObject size:(CGSize)size;
|
+ (instancetype)newWithLayoutableObject:(id<ASLayoutable>)layoutableObject size:(CGSize)size;
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#import <AsyncDisplayKit/ASLayoutable.h>
|
#import <AsyncDisplayKit/ASLayoutable.h>
|
||||||
#import <AsyncDisplayKit/ASLayout.h>
|
|
||||||
|
|
||||||
/** A layout spec is an immutable object that describes a layout, loosely inspired by React. */
|
/** A layout spec is an immutable object that describes a layout, loosely inspired by React. */
|
||||||
@interface ASLayoutSpec : NSObject <ASLayoutable>
|
@interface ASLayoutSpec : NSObject <ASLayoutable>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#import <AsyncDisplayKit/ASDimension.h>
|
#import <AsyncDisplayKit/ASDimension.h>
|
||||||
#import <AsyncDisplayKit/ASStackLayoutChild.h>
|
#import <AsyncDisplayKit/ASStackLayoutDefines.h>
|
||||||
|
|
||||||
@class ASLayout;
|
@class ASLayout;
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
#import "ASAssert.h"
|
#import "ASAssert.h"
|
||||||
#import "ASBaseDefines.h"
|
#import "ASBaseDefines.h"
|
||||||
|
#import "ASLayout.h"
|
||||||
|
|
||||||
@implementation ASOverlayLayoutSpec
|
@implementation ASOverlayLayoutSpec
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
#import "ASBaseDefines.h"
|
#import "ASBaseDefines.h"
|
||||||
|
|
||||||
#import "ASInternalHelpers.h"
|
#import "ASInternalHelpers.h"
|
||||||
|
#import "ASLayout.h"
|
||||||
|
|
||||||
@implementation ASRatioLayoutSpec
|
@implementation ASRatioLayoutSpec
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#import "ASStaticLayoutSpecDimension.h"
|
#import "ASRelativeSize.h"
|
||||||
#import "ASAssert.h"
|
#import "ASAssert.h"
|
||||||
|
|
||||||
ASRelativeSizeRange const ASRelativeSizeRangeUnconstrained = {};
|
ASRelativeSizeRange const ASRelativeSizeRangeUnconstrained = {};
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#import <AsyncDisplayKit/ASLayoutSpec.h>
|
#import <AsyncDisplayKit/ASLayoutSpec.h>
|
||||||
#import <AsyncDisplayKit/ASStaticLayoutSpecDimension.h>
|
#import <AsyncDisplayKit/ASRelativeSize.h>
|
||||||
|
|
||||||
@interface ASStaticLayoutSpecChild : NSObject
|
@interface ASStaticLayoutSpecChild : NSObject
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
#import "ASLayoutSpecUtilities.h"
|
#import "ASLayoutSpecUtilities.h"
|
||||||
#import "ASInternalHelpers.h"
|
#import "ASInternalHelpers.h"
|
||||||
|
#import "ASLayout.h"
|
||||||
|
|
||||||
@implementation ASStaticLayoutSpecChild
|
@implementation ASStaticLayoutSpecChild
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
#import "ASDisplayNode.h"
|
#import "ASDisplayNode.h"
|
||||||
#import "ASSentinel.h"
|
#import "ASSentinel.h"
|
||||||
#import "ASThread.h"
|
#import "ASThread.h"
|
||||||
#import "ASLayout.h"
|
|
||||||
|
|
||||||
BOOL ASDisplayNodeSubclassOverridesSelector(Class subclass, SEL selector);
|
BOOL ASDisplayNodeSubclassOverridesSelector(Class subclass, SEL selector);
|
||||||
void ASDisplayNodePerformBlockOnMainThread(void (^block)());
|
void ASDisplayNodePerformBlockOnMainThread(void (^block)());
|
||||||
|
|||||||
@@ -8,11 +8,9 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
#include <CoreGraphics/CGBase.h>
|
||||||
#import "ASBaseDefines.h"
|
#import "ASBaseDefines.h"
|
||||||
|
|
||||||
@class ASLayoutChild;
|
|
||||||
|
|
||||||
ASDISPLAYNODE_EXTERN_C_BEGIN
|
ASDISPLAYNODE_EXTERN_C_BEGIN
|
||||||
|
|
||||||
BOOL ASSubclassOverridesSelector(Class superclass, Class subclass, SEL selector);
|
BOOL ASSubclassOverridesSelector(Class superclass, Class subclass, SEL selector);
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
#import "ASDisplayNode.h"
|
#import "ASDisplayNode.h"
|
||||||
#import "ASLayoutSpec.h"
|
#import "ASLayoutSpec.h"
|
||||||
|
#import "ASLayout.h"
|
||||||
|
|
||||||
@interface ASTestNode : ASDisplayNode
|
@interface ASTestNode : ASDisplayNode
|
||||||
- (void)setLayoutSpecUnderTest:(ASLayoutSpec *)layoutSpecUnderTest sizeRange:(ASSizeRange)sizeRange;
|
- (void)setLayoutSpecUnderTest:(ASLayoutSpec *)layoutSpecUnderTest sizeRange:(ASSizeRange)sizeRange;
|
||||||
|
|||||||
Reference in New Issue
Block a user