我目前在编码时面临一个大问题,但我找不到任何解决方案。
Just as you can see here,我想创建一个可扩展的tableview:
我的意思是,如果点击“2A”,则会扩展“2A-1”,“2A-2”等列表。如果单击“2B”,则“2B-1”,“2B-2”列表为,依此类推。
您认为我怎么能管理它?
答案 0 :(得分:1)
我在一些产品中写过这种性质的解决方案。完成此任务的代码有点广泛,因此我将为您提供高级概述。
将每个“行”创建为一个部分。显然,覆盖viewForHeaderInSection
等等,以使每个节标题实际上看起来像一行。
让您的视图控制器保持一个扩展哪些部分的数组(未展开的部分已折叠)
在- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
检查以查看该部分是否展开,如果是,则返回子项的数量,否则返回0.
因此,cellForRowAtIndexPath总是只返回子项,而viewForHeaderInSection总是返回父项。
当用户点击标题单元格时,切换部分展开标记,并reloadSections:withRowAnimation:
以获得良好的动画过渡
一个注意事项,因为在IOS6之前,部分标题总是被重新创建并且从未缓存,性能不是很好。使用IOS6时,这个问题也得到了解决,因为它也会回收标题单元格。
答案 1 :(得分:0)
对于可扩展的单元格,您可以使用VPPDropDown类,我自己使用它,它很好:)
答案 2 :(得分:0)
有很多代码/博客可供使用,但我发现这个Drag Drop类在实现过程中很容易,并根据我的要求进行自定义: