0

我使用 AsyncDisplayKit 编写了这段代码:

override open func layoutSpecThatFits(_ constrainedSize: ASSizeRange) -> ASLayoutSpec {

    let horizonTitleDate = ASStackLayoutSpec(direction: .horizontal, spacing: 5, justifyContent: .start, alignItems: ASStackLayoutAlignItems.start, children: [title,space, datetime])
    let verticalMess = ASStackLayoutSpec(direction: .vertical, spacing: 5, justifyContent: .start, alignItems: ASStackLayoutAlignItems.start, children: [horizonTitleDate, desc])
    let horizonMess = ASStackLayoutSpec(direction: .horizontal, spacing: 5, justifyContent: .start, alignItems: ASStackLayoutAlignItems.start, children: [avatar, verticalMess])


    //desc.style.width = ASDimensionMake(constrainedSize.max.width - 100)
    desc.style.alignSelf                 = .stretch
    desc.style.flexGrow                  = 1.0
    desc.style.flexShrink                  = 1.0
    verticalMess.style.alignSelf         = .stretch
    verticalMess.style.flexGrow          = 1.0
    horizonTitleDate.style.alignSelf     = .stretch
    let insets  = UIEdgeInsetsMake(5, 5, 5, 5)
    return ASInsetLayoutSpec(insets: insets, child: horizonMess)

}

我得到这个:

在此处输入图像描述

可以看到,黄色的TextNode,比cellNode大,而且不会变成2行,纵向模式下是这样的:

在此处输入图像描述

如果我只绘制没有头像的垂直布局,我会获得正确的视图:

在此处输入图像描述

怎么了?谢谢!

4

1 回答 1

2

我没看到flexShrinkverticalMess尝试添加这一行:

    verticalMess.style.flexShrink                  = 1.0
于 2018-01-10T16:08:31.957 回答