我正在使用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
}发布于 2019-03-05 22:29:12
我读了你的布局,看到了下一张图片:

https://stackoverflow.com/questions/54421236
复制相似问题