0

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

正如您在这里看到的,我想创建一个可扩展的表格视图:

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

我的意思是,如果您点击“2A”,“2A-1”、“2A-2”等列表就会展开。如果点击“2B”,则出现“2B-1”、“2B-2”列表,以此类推。

你觉得我能怎么办?

4

2 回答 2

1

我已经在一些产品中编写了这种性质的解决方案。完成此操作的代码有点广泛,因此我将为您提供一个高级概述。

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

让您的视图控制器保存一个数组,其中包含展开的部分(未展开的部分是折叠的)

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 检查节是否展开,如果是,则返回子项数,否则返回0。

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

当用户单击标题单元格时,切换部分扩展标志,并reloadSections:withRowAnimation:获得漂亮的动画过渡

请注意,由于在 IOS6 之前,总是重新创建节标题并且从不缓存,因此性能不是很好。使用 IOS6,这个问题也得到了解决,因为它也回收了标题单元格。

于 2012-10-09T03:28:51.630 回答
0

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

于 2012-10-09T03:49:54.727 回答