CellCode

时间:2016-05-26 11:34:36

标签: ios swift asyncdisplaykit

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

See the image

1 个答案:

答案 0 :(得分:0)

我实现这一目标的方法是在ASStaticLayoutSpec中添加全宽度的额外节点。

在标题中:

@property (strong, nonatomic) ASDisplayNode *stretchNode;

在init

_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替换为您想要的任何内容。