0

我正在使用 AsyncDisplayKit 来创建我的布局。

从下图中,我无法弄清楚为什么顶部的 RepliedChatView 对于短文本没有延伸到末尾,但在长/多行文本上工作正常。我怎样才能解决这个问题?

在此处输入图像描述

 override public func layoutSpecThatFits(_ constrainedSize: ASSizeRange) -> ASLayoutSpec {
    let stack = ASStackLayoutSpec()
    stack.direction = .vertical
    stack.style.flexShrink = 1.0
    stack.style.flexGrow = 1.0

    stack.setChild(chatReplyNode, at: 0)
    stack.setChild(bubbleNode, at: 1)

    let verticalSpec = ASBackgroundLayoutSpec()
    verticalSpec.style.flexGrow = 1.0
    verticalSpec.style.flexShrink = 1.0
    verticalSpec.background = bubbleImageNode

    let messageContent = MessageModel(mockMessage: message)

        if(messageContent.message.count <= 20){

            let horizon = ASStackLayoutSpec(direction: .horizontal, spacing: 10, justifyContent: .start, alignItems: ASStackLayoutAlignItems.start, children: [stack , timeNode])
                verticalSpec.child = ASInsetLayoutSpec(
                    insets: UIEdgeInsets(
                        top: textNodeVerticalOffset,
                        left: textNodeVerticalOffset,
                        bottom: textNodeVerticalOffset,
                        right: textNodeVerticalOffset
                    ),
                    child: horizon)
        }else{
            stack.setChild(timeNode, at: 2)
            verticalSpec.child = ASInsetLayoutSpec(
                insets: UIEdgeInsets(
                    top: 8,
                    left: textNodeVerticalOffset,
                    bottom: 5,
                    right: textNodeVerticalOffset
            ), child: stack)
        }

   //space it
    let insetSpec = ASInsetLayoutSpec(insets: isOutgoing ? UIEdgeInsets(top: 1, left: 62, bottom: 5, right: 20) : UIEdgeInsets(top: 1, left: 20, bottom: 5, right: 62), child: verticalSpec)

    let stackSpec = ASStackLayoutSpec()
    stackSpec.direction = .vertical
    stackSpec.style.flexGrow = 1.0
    stackSpec.style.flexShrink = 1.0
    stackSpec.justifyContent = .center
    stackSpec.alignItems = isOutgoing ? .end : .start
    stackSpec.spacing = 0
    stackSpec.children = [insetSpec]
    return stackSpec
}
4

1 回答 1

0

我阅读了您的布局并查看下一张图片:

在此处输入图像描述

于 2019-03-05T14:29:11.800 回答