我实现了一个带有嵌套UITableview的Accordion菜单UI。首先,我创建了一个自定义的UITableViewCell,它里面有一个UITableView。点击单元格后,将计算顶级tableview的单元格高度,并且[UITableView beginUpdates]
和[UITableView endUpdates]
将动态更新表格视图。
在更新单元格的高度时,我还动画地更改了第2级tableview的高度。此更改由自动布局完成。在第二级tableview更改期间,我想要显示一些行动画。我正在做的是,逐行插入或删除行,例如从左到右的行动画。
我的问题是,什么时候打开'在顶级菜单中,单元格的高度变得更加生动,第二级tableview的行动画也正确显示。但是,当关闭'它,单元格的高度动画变小,而第二级tableview的行动画则无法看到。第二个tableview的行立即消失了。 有没有人可以告诉我如何正确实现这个动画?
答案 0 :(得分:0)
要实现Accordion功能,我建议您使用更简单的方法。 您需要管理一个数据源,您将传递给母表tableview(例如:array),该数据源将包含一个数组,其中每个索引包含多个索引作为Dictionaries。这本词典必须有一个Bool Key。现在,因为他们是UITableview“viewForHedderInSection”的一个代表,创建一个UITableviewCell并返回它。现在您只需要更新字典中的Bool值。要打开的单元格行只是将该bool值设置为“是”并休息为“否”,然后重新加载tableview。这样你就可以获得手风琴。 现在,它的每个单元格,即UIView添加一个UITableView并通过添加和删除行来更新其数据源,并使这两个UITableview函数不同地使实例有所不同。 我认为这种方式可以实现这一功能。