ASyncDisplayKit - 一个容器中的多个节点

ASyncDisplayKit - Multiple nodes in one container

是否可以在一个容器中有多个纹理节点?

例如,我需要在屏幕的上半部分有一个 ASTableNode,在其下方有一个带有 UIView 块的 ASDisplayNode。

我试过使用带有 layoutSpecThatFits 的 ASViewController,其中 returns 一个 ASSTackLayoutSpec - 但两个子节点都没有出现在视图中。

谢谢!

是的,可以将 ASTableNode 和 ASDisplayNode 放在同一个堆栈中。使用水平堆栈布局,将节点 flexGrow 属性 设置为相等的值(以便它们均匀增长)并在您的节点上将 automaticallyManagesSubnodes 设置为 true

override init() {
    ///Initialize nodes if not initialized on declaration
    super.init()
    automaticallyManagesSubnodes = true
}

override func layoutSpecThatFits(constrainedSize: ASSizeRange) -> ASLayoutSpec {
    let stack = ASStackLayoutSpec.vertical()
    stack.children = [tableNode, displayNode]
    tableNode.style.flexGrow = 1
    displayNode.style.flexGrow = 1

    ///For testing
    displayNode.backgroundColor = .red
    tableNode.backgroundColor = .blue
}