从内部嵌套的UITableViewCell设置外部TableViewCell的高度

时间:2014-09-02 09:39:34

标签: ios iphone xcode uitableview

我正在尝试使用UITableView实现手风琴视图。我希望将视图嵌套最多2个级别。 (例如:每个区域下面有多个区域,将有零/多个位置,每个位置下将有零/多个用户)。 为了实现这个场景,我使用了嵌套的UITableView。即外部TableView(即Region TableView)将其单元格作为另一个UITableView(即Location TableView),并且LocationTableView的每个单元格将具有另一个UITableView(即TableView在每个位置下显示用户列表)作为其单元格。 我附上了图片以便进一步澄清。

在下面的图像中,区域是tableview的一部分。 (注意:tableview中现在不是一行) Outer TableView

点击第二部分,即名称为 Region 的部分后,我动态重新加载该部分并添加单元格(即包含显示位置的UITableview的单元格)

Location List Tableview 但是,它显示了位置tableview下方的空白区域。 相反,我想要这样的事情如下:

enter image description here

再次点击内部tableview的第0个部分(位置0)(即包含位置列表的tableview)后,我动态重新加载tableview的那一部分并添加单元格(即包含UITableview的单元格,显示该表格下的用户列表地点) 看看下面的图片

Innermost tableview i.e userlist tableview

完美无缺。 现在我的问题是我在 * - (CGFloat)tableView :( UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath )indexPath 方法中计算了外部UITableviewCell的高度取决于该区域内的数字位置(即单元格)和该特定区域单元格下每个位置下的用户数量。问题是我需要隐藏/显示位置和用户列表(所有位置和用户列表不会立即显示),如同accordionView一样。因此内部tableView的高度增加/减少,因此在底部留下空白。我还为包含tableview的每个内部单元创建了自定义UITableViewCell(即为单元创建单独的nib文件)作为ContentView,并在其相应的.m文件中实现了所有UITableView数据源和委托方法。 我想要的不是显示空白空间。

当控制进入内部tableview单元格时,我无法从那里设置外部UITableView的高度。

希望你能理解我的问题。请帮我。谢谢!!!

1 个答案:

答案 0 :(得分:0)

我有类似的这样的要求,我没有使用嵌套的tableview,因为它给我带来了一些复杂性,所以我尝试使用缩进和tableview的索引路径来实现我想要的。我刚刚用一些虚拟数据做了一个带有该概念的小样本应用程序。我从未尝试过使用自定义单元格的方法。看看这是否有帮助。

我知道我没有回答您提出的确切问题,但我正在尝试采用一种不同的方法,对我来说看起来更简单。

我刚修改了我的基本代码以匹配您的数据

How to create an Accordion with UItableview under a UItableview?

可在此处找到来源 Accordion

截图 enter image description here

-anoop