在UITableView中显示和隐藏特定的单元格类型(可能带有动画)

tim*_*one 8 uitableview ios ios7

我有一个UITableView并看到了这种效果,并希望为我们的followind数据实现它:

menu_header
  menu_subheader
    * item
    * item
  menu_subheader
    * item
    * item  
    * item
Run Code Online (Sandbox Code Playgroud)

基本上,我想只显示标题和子标题,然后当用户单击其中一个子标题时,它会显示项目(最好是在动画块中)并适当地向下或向上调整其他单元格.像这样:

在此输入图像描述

是否有预制组件可以做到这一点?想一想,似乎我想将这些项目单元格设置为隐藏.我已经看过这个https://github.com/peterpaulis/StaticDataTableViewController但看起来它不适用于动态数据.看起来这应该很简单.有关如何完成这项工作的任何想法?理想情况下,我希望它能够在您单击它时插入数据,然后如果您单击另一个子标题,请关闭另一个并添加到该子标题.

jrt*_*ton 6

要在表视图中实现"折叠",您有两个选择:

  • 根据每个部分的折叠/展开属性控制部分中的单元格数.折叠或展开时,请使用tableView上的insertdeleteRowsAtIndexPaths:withRowAnimation:方法.
  • 使用委托方法控制单元格的高度.根据每个部分的折叠/展开属性,折叠部分返回零.折叠或展开时,beginUpdates立即调用endUpdates以重新计算高度并为新布局设置动画.

我在这个GitHub仓库中创建了第二个选项的简单实现.如果您对此有其他疑问,请与我们联系.