首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AsyncDisplayKit:不适合短文本的大小

AsyncDisplayKit:不适合短文本的大小
EN

Stack Overflow用户
提问于 2019-01-29 20:36:19
回答 1查看 104关注 0票数 0

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

从下图中,我无法理解为什么顶部的RepliedChatView不能延伸到短文本的末尾,而可以很好地处理长/多行文本。我该如何解决这个问题呢?

代码语言:javascript
复制
 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
}
EN

回答 1

Stack Overflow用户

发布于 2019-03-05 22:29:12

我读了你的布局,看到了下一张图片:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54421236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档