CellNode 的 ASCollectionNode 全角布局
ASCollectionNode full-width layout for CellNode
我想在 ASCollectionNode
中使单元格全宽,但我会 CellNodes
按内容调整大小。
我已经实现了 layoutSpecThatFits:
。
我的实现方式是在 ASStaticLayoutSpec 中添加额外的全宽节点。
在header中:
@property (strong, nonatomic) ASDisplayNode *stretchNode;
初始化中
_stretchNode = [ASDisplayNode new];
[self addSubnode:_stretchNode];
layoutSpecThatFits:
- (ASLayoutSpec *)layoutSpecThatFits:(ASSizeRange)constrainedSize {
_stretchNode.sizeRange = ASRelativeSizeRangeMakeWithExactCGSize(CGSizeMake(constrainedSize.max.width, 0.5f));
NSArray *children = @[];
ASStackLayoutSpec *mainStackLayoutSpec = [ASStackLayoutSpec stackLayoutSpecWithDirection:ASStackLayoutDirectionVertical spacing:0 justifyContent:ASStackLayoutJustifyContentStart alignItems:ASStackLayoutAlignItemsStart children:children];
ASStaticLayoutSpec *mainStaticLayoutSpec = [ASStaticLayoutSpec staticLayoutSpecWithChildren:@[mainInsetsLayoutSpec, _stretchNode]];
return mainStaticLayoutSpec;
}
此处重要的部分是将您的布局和 stretchNode 包装在 ASStaticLayoutSpec 中。您可以将 StackLayout 替换为您想要的任何内容。
我想在 ASCollectionNode
中使单元格全宽,但我会 CellNodes
按内容调整大小。
我已经实现了 layoutSpecThatFits:
。
我的实现方式是在 ASStaticLayoutSpec 中添加额外的全宽节点。
在header中:
@property (strong, nonatomic) ASDisplayNode *stretchNode;
初始化中
_stretchNode = [ASDisplayNode new];
[self addSubnode:_stretchNode];
layoutSpecThatFits:
- (ASLayoutSpec *)layoutSpecThatFits:(ASSizeRange)constrainedSize {
_stretchNode.sizeRange = ASRelativeSizeRangeMakeWithExactCGSize(CGSizeMake(constrainedSize.max.width, 0.5f));
NSArray *children = @[];
ASStackLayoutSpec *mainStackLayoutSpec = [ASStackLayoutSpec stackLayoutSpecWithDirection:ASStackLayoutDirectionVertical spacing:0 justifyContent:ASStackLayoutJustifyContentStart alignItems:ASStackLayoutAlignItemsStart children:children];
ASStaticLayoutSpec *mainStaticLayoutSpec = [ASStaticLayoutSpec staticLayoutSpecWithChildren:@[mainInsetsLayoutSpec, _stretchNode]];
return mainStaticLayoutSpec;
}
此处重要的部分是将您的布局和 stretchNode 包装在 ASStaticLayoutSpec 中。您可以将 StackLayout 替换为您想要的任何内容。