2012-02-06 70 views
2

我想添加一个UITableViewUITableViewCell动态,当我点击UITableViewCell,它会改变它的高度,并显示一个UITableView里面,当我再次在UITableViewCell点击,它会隐藏UITableView添加的UITableView到的UITableViewCell动态

要做到这一点,我做了以下内容:

  1. 用笔尖文件创建一个自定义UITableViewCell
  2. 将它加载到主UITableView与调整我想要显示它的信息之前展开它。
  3. 执行- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath来处理选定的UITableViewCell
  4. 启动第二个UITableView(它是一个UITableViewController,使用nib文件创建它),调整选定的UITableViewCell以适合新尺寸(扩大尺寸)。
  5. 使用[selectedCell.contentView addSubview:desc.view];添加UITableView
  6. 重新加载主UITableView

但是,它没有工作,我得到的是一个正确大小的空白空间。我已经使用[tableView addSubview:desc.view];,但它在主UITableView内部添加UITableView,而不是在选定的单元格内。

注意:添加的UITableView不可滚动,当我点击它的一个单元格时,它将导航到另一个视图。

任何提示将不胜感激。 thx提前。

+1

你是否实现了新的tableView的数据源和委托方法? – sosborn 2012-02-06 00:38:33

+0

是的,我已经实现了数据源和委托方法,请注意,如果新的uitableview被添加到主uitableview,它显示正确,并与它的单元格,但如果我添加新的uitableview到选定的单元格,它不会显示。 – Scar 2012-02-06 12:02:22

+1

它看起来像你正在使用UITableViewController的子表tableview。如果是这样,请停止这样做,因为您一次只能在视图控制器上使用。你不需要一个UITableViewController来使用UITableView。只需使用视图,而不是控制器。 – sosborn 2012-02-06 12:24:59

回答

2

像sosborn说,我使用的UITableView代替UITableViewController

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

原因我打电话每次[tableView reloadData]用户选择小区添加新的表图。

+0

嗨..对不起,我无法得到你的答案。我是初学者。我试图做同样的事情,你做了。你是否创建了单独的UIView并将其映射到第5步中的UITableviewCell? – itdeeps 2012-05-23 04:34:51

+0

其实,我已经创建了一个新的.h&.m文件,将它们与一个空的xib文件连接起来,并为它们创建超类“UITableView”。我在'CellForRowAtIndexPath'中实现了添加代码,它将根据布尔值执行,布尔值将在'didSelectedRowAtIndexPath'中更改,并且在此方法结束时,我调用'[tableView reloadData];'。 – Scar 2012-05-24 18:31:27

+0

好的谢谢..我明白了.. – itdeeps 2012-05-25 04:05:57

相关问题