CellNode 的 ASCollectionNode 全角布局

ASCollectionNode full-width layout for CellNode

我想在 ASCollectionNode 中使单元格全宽,但我会 CellNodes 按内容调整大小。 我已经实现了 layoutSpecThatFits:

See the image

我的实现方式是在 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 替换为您想要的任何内容。