IOS 中的 TreeView 在从 Scrollview 添加或删除子视图后重新排列以下子视图

TreeView in IOS rearrange following Subviews after adding or removing subviews from Scrollview

我尝试为 IOs 应用程序创建一个 n 维 Treeview 控件。 我将 UiViewController 与 UIScrollView 一起使用,并为 TreeNodes 设置了自定义 UIView Class。 现在我想折叠和展开树节点,但是如果我在滚动视图中添加或删除子视图,我必须重新排列其他子视图。

这是树:

如果我折叠第二个节点并删除子节点,它看起来像这样:

有没有一种方法可以在不以编程方式重新排列以下子视图的情况下实现类似的功能?

你已经实现了很多代码? 因为我可能会使用 tableview.

作为 table 的数据源,您可以使用字典数组;在每个字典中,您可以存储行信息,例如:

行元素;//当前要显示的元素

parent元素;//*到parent元素

; //NSInteger number of parents (你可以用它来做缩进)

因此,当您删除一行时,您可以在所有数据源中搜索具有该 parent 元素的项目,并将其替换为已删除行的 parent(如果存在);而不是减少它们的生成,并递归地减少所有 children(直到你找不到更多的 children)。

当然,在填充 table 视图时,您可以轻松地使用世代编号进行缩进。