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

时间:2018-01-05 21:19:44

标签: ios swift textures asyncdisplaykit

是否可以在一个容器中包含多个Texture节点?

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

我尝试使用带有layoutSpecThatFits的ASViewController,它返回一个ASSTackLayoutSpec - 但是这两个子节点都没有出现在视图中。

谢谢!

1 个答案:

答案 0 :(得分:1)

是的,可以将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
}