ASDisplayNode без поддержки UIView / CALayer - PullRequest
0 голосов
/ 16 июня 2020

Можно ли создать узел, используемый только для макета / абстракции, который не приведет к созданию UIView или CALayer?

До сих пор, когда я создал узел, который просто содержит другие узлы, он по-прежнему поддерживается кодом UIView

:

import AsyncDisplayKit
import UIKit

final class TasksTableNode: ASDisplayNode {

    var tasks = [TaskRowNode]()

    override init() {
        super.init()
        automaticallyManagesSubnodes = true
        style.flexGrow = 1

        for i in 0...8 {
            let q = TaskRowNode()
            q.style.flexGrow = 1
            tasks.append(q)
        }
    }

    override func layoutSpecThatFits(_ constrainedSize: ASSizeRange) -> ASLayoutSpec {
        return ASStackLayoutSpec(direction: .vertical,
                                 spacing: 0,
                                 justifyContent: .start,
                                 alignItems: .stretch,
                                 children: tasks)
    }

}

В инспекторе иерархии представлений мне удалось найти UIView, созданный для этого узла:

screenshot

Есть ли способ «деактивировать» создание представления, чтобы узел использовался только для макета / лучшей абстракции?

...