Ios Swift:使用tableview创建无限树
我正在做一棵树,它有一个根节点和无限级 我想要实现的是: 使用表视图显示当前级别的节点,从根节点开始。每个表单元都是一个节点。我能够硬编码它来显示特定级别的节点。 点击表格单元格时,在表格视图中显示节点的下一级子节点。 这会一直持续下去,直到您单击一个没有任何子节点的节点。然后它什么也不做。 我知道点击一个单元格可以触发performsguewithidentifier,它将进入下一个场景。但是,由于树有无限的层次,我想仅仅去另一个场景是行不通的。相反,必须有一种方法来重复当前场景tableview,以显示当前级别节点,其中包含有关当前级别的信息 请建议处理这种情况的最佳方法。多谢各位 示例树结构如下所示:Ios Swift:使用tableview创建无限树,ios,swift,tree,tableview,Ios,Swift,Tree,Tableview,我正在做一棵树,它有一个根节点和无限级 我想要实现的是: 使用表视图显示当前级别的节点,从根节点开始。每个表单元都是一个节点。我能够硬编码它来显示特定级别的节点。 点击表格单元格时,在表格视图中显示节点的下一级子节点。 这会一直持续下去,直到您单击一个没有任何子节点的节点。然后它什么也不做。 我知道点击一个单元格可以触发performsguewithidentifier,它将进入下一个场景。但是,由于树有无限的层次,我想仅仅去另一个场景是行不通的。相反,必须有一种方法来重复当前场景tablevi
class Node {
var id:Int;
var parent:Int?;
init(id:Int, parent:Int?) {
self.id = id;
self.parent = parent;
}
}
var allNodes = [
Node(id:1, parent: nil),
Node(id:2, parent: 1),
Node(id:3, parent: 1),
Node(id:4, parent: 2),
Node(id:5, parent: 2),
Node(id:6, parent: 3)
];
您可以简单地将数据源allNodes更新为tableViewDelegate方法中的子节点:tableView:didSelectRowAtIndexPath:然后从tableView中删除其他行并调用tableView.reloadData,这意味着您的行现在将只是先前所选单元格的子节点,并继续运行,直到点击在didSelectRow方法中,留下您可以检查它是否有子对象的位置,如果它没有子对象,则不执行任何操作
这就是我要做的…我敢肯定,在任何当前或未来的计算机上,你都无法表示无限级别。