双截面可扩展桌面视图

时间:2012-10-08 23:05:00

标签: iphone ios xcode uitableview

我目前在编码时面临一个大问题,但我找不到任何解决方案。

Just as you can see here,我想创建一个可扩展的tableview:

  • 类别分为2个部分
  • 子类

我的意思是,如果点击“2A”,则会扩展“2A-1”,“2A-2”等列表。如果单击“2B”,则“2B-1”,“2B-2”列表为,依此类推。

您认为我怎么能管理它?

3 个答案:

答案 0 :(得分:1)

我在一些产品中写过这种性质的解决方案。完成此任务的代码有点广泛,因此我将为您提供高级概述。

将每个“行”创建为一个部分。显然,覆盖viewForHeaderInSection等等,以使每个节标题实际上看起来像一行。

让您的视图控制器保持一个扩展哪些部分的数组(未展开的部分已折叠)

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section检查以查看该部分是否展开,如果是,则返回子项的数量,否则返回0.

因此,cellForRowAtIndexPath总是只返回子项,而viewForHeaderInSection总是返回父项。

当用户点击标题单元格时,切换部分展开标记,并reloadSections:withRowAnimation:以获得良好的动画过渡

一个注意事项,因为在IOS6之前,部分标题总是被重新创建并且从未缓存,性能不是很好。使用IOS6时,这个问题也得到了解决,因为它也会回收标题单元格。

答案 1 :(得分:0)

对于可扩展的单元格,您可以使用VPPDropDown类,我自己使用它,它很好:)

答案 2 :(得分:0)

有很多代码/博客可供使用,但我发现这个Drag Drop类在实现过程中很容易,并根据我的要求进行自定义:

看看这个 Table Cell Expansion with Animation