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

时间:2015-08-05 10:54:25

标签: ios objective-c uiscrollview treeview

我尝试为IO应用程序创建n维树视图控件。 我使用带有UIScrollView的UiViewController,并为TreeNodes提供了一个自定义的UIView类。 现在我想折叠并展开Treenodes,但如果我在滚动视图中添加或删除子视图,我必须重新排列其他子视图。

这是树:

enter image description here

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

enter image description here

有没有办法实现类似的东西,而无需以编程方式重新排列以下子视图?

1 个答案:

答案 0 :(得分:1)

你已经意识到很多代码? 因为我可能会使用tableview。

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

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

父元素; // *到父元素

; // NSInteger父母的数量(你可以用它来做缩进)

因此,当您删除行时,可以在所有数据源中搜索具有该父元素的项目,并将其替换为已删除行的父项(如果存在);而不是递减他们的一代,并递归所有的孩子(直到你不会再找到孩子)。

当然,在填充tableview时,您可以轻松使用世代号进行缩进。