ASViewController 显示空表

问题描述 投票:0回答:1

我有以下控制器

class CategoriesViewController: ASViewController<ASTableNode>, CategoriesViewProtocol {


    override init(nibName: String?, bundle: Bundle?) {
        super.init(node: ASTableNode())
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        node.dataSource = self
        node.delegate = self
    }

}

extension CategoriesViewController: ASTableDataSource, ASTableDelegate {

    func tableNode(_ tableNode: ASTableNode, numberOfRowsInSection section: Int) -> Int {
        return 13
    }

    func tableView(_ tableView: ASTableView, nodeForRowAt indexPath: IndexPath) -> ASCellNode {
        let node = CategoryCell()
        return node
    }
}


    class CategoryCell: ASCellNode {

    var name: ASTextNode?

    init() {
        super.init()
        self.name = ASTextNode()
        name?.attributedText = NSAttributedString(string: "Hello!", attributes: [NSAttributedStringKey.font: UIFont(name: "HelveticaNeue", size: 12.0)])
    }

    override func layoutSpecThatFits(_ constrainedSize: ASSizeRange) -> ASLayoutSpec {

        let verticalStack = ASStackLayoutSpec.vertical()
        verticalStack.children = [ASInsetLayoutSpec(insets: UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10), child: self.name!)]

        return verticalStack
    }

}

但表格显示空白

我究竟做错了什么 ?

asyncdisplaykit
1个回答
0
投票

在CategoryCell的init方法中,必须添加以下内容:

addSubnode(name!)

所以你的categorycell看起来像这样:

class CategoryCell: ASCellNode {

var name: ASTextNode?

init() {
    super.init()
    self.name = ASTextNode()
    addSubnode(name!)
name?.attributedText = NSAttributedString(string: "Hello!", attributes: [NSAttributedStringKey.font: UIFont(name: "HelveticaNeue", size: 12.0)])

}

override func layoutSpecThatFits(_ constrainedSize: ASSizeRange) -> ASLayoutSpec {

    let verticalStack = ASStackLayoutSpec.vertical()
    verticalStack.children = [ASInsetLayoutSpec(insets: UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10), child: self.name!)]

    return verticalStack
}
© www.soinside.com 2019 - 2024. All rights reserved.