gpt4 book ai didi

ios - 使用 AsyncDisplayKit 包装嵌套的 ASStackLayoutSpec

转载 作者:行者123 更新时间:2023-11-28 05:56:47 24 4
gpt4 key购买 nike

将嵌套的 ASStackLayoutSpec 与 AsyncDisplayKit 结合使用我正在努力实现这一点

enter image description here

所以我创建了一个带有头像的垂直 ASStackLayoutSpec 和另一个带有用户名、时间戳和文本的水平 ASStackLayoutSpec

override func layoutSpecThatFits(_ constrainedSize: ASSizeRange) -> ASLayoutSpec {
// HEADER with username and timestamp
let spacer = ASLayoutSpec()
spacer.style.flexGrow = 1
let headerStackSpec = ASStackLayoutSpec.horizontal()
headerStackSpec.spacing = 2
headerStackSpec.alignItems = .baselineFirst
headerStackSpec.children = [userNode, spacer, timestampNode]

// CONTENT - HEADER and text
let contentStackSpec = ASStackLayoutSpec.vertical()
contentStackSpec.spacing = 2
contentStackSpec.children = [headerStackSpec, messageNode]

// MAIN - avatar and CONTENT
let mainStackSpec = ASStackLayoutSpec.horizontal()
mainStackSpec.spacing = 9
mainStackSpec.children = [avatarNode, contentStackSpec]

return ASInsetLayoutSpec(insets: UIEdgeInsets(top: 2, left: 10, bottom: 2, right: 10), child: mainStackSpec)
}

但是结果不是我想的那样

enter image description here

看起来文本变得无穷大,没有正确换行。时间戳也可能位于边界右侧远处的某个地方。

我尝试了 .alignItems.justifyContent 的不同组合,但我无法让它工作。

最佳答案

试试这些属性:

contentStackSpec.style.flexShrik = 1
messageNode.style.flexShrik = 1
contentStackSpec.children = [headerStackSpec, messageNode]

关于ios - 使用 AsyncDisplayKit 包装嵌套的 ASStackLayoutSpec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51289032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com