Uitableview 如何在自定义tableview单元格中实现tableview?

Uitableview 如何在自定义tableview单元格中实现tableview?,uitableview,custom-cell,Uitableview,Custom Cell,我不熟悉Objective-C和Xcode。我以前写过C程序,所以我在使用Xcode时遇到了很多问题 现在,我正在写一个像“instagram”这样的应用程序,显示图片和相关评论。所有这些图片和评论都来自数据库,这在我的问题中并不重要 所以,请看看我的设计。 这是“一个单元格设置”,在该设置下,应用程序将继续显示不同的图像和注释,同时向下滚动并显示另一个单元格 首先,我创建了一个UITableViewController,然后我将表格视图单元格放大到整个视图。我在单元格中添加了一个UIImag

我不熟悉Objective-C和Xcode。我以前写过C程序,所以我在使用Xcode时遇到了很多问题

现在,我正在写一个像“instagram”这样的应用程序,显示图片和相关评论。所有这些图片和评论都来自数据库,这在我的问题中并不重要

所以,请看看我的设计。

这是“一个单元格设置”,在该设置下,应用程序将继续显示不同的图像和注释,同时向下滚动并显示另一个单元格

首先,我创建了一个
UITableViewController
,然后我将表格视图单元格放大到整个视图。我在单元格中添加了一个
UIImageView
和表视图,因此,这是一个自定义单元格

然后我创建一个
UITableViewCell
类来实现这个自定义单元格。我搜索并发现我可以在此
UITableViewCell
类中添加子视图,以在我的自定义单元格中显示
UIImage
,如:

UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(cell.contentView.frame.origin.x,     cell.contentView.frame.size.height, 20, 20)];
imageView.image = [UIImage imageNamed:@"Icon.png"];
[cell.contentView addSubview:imageView];
但我不知道如何将
UITableView
添加为自定义单元格的子视图。我可以添加一个代码

[cell.contentView addSubView:tableView] ;
在我的自定义单元格类上,但我可以在哪里配置此嵌入的
TableView
的单元格内容?因此,这种方法:

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

那么,有人能建议我如何做到这一点吗?还是有其他方法可以实现这一目标?谢谢你的帮助。

我认为你走的路是对的

创建从
UITableViewCell
派生的自定义tableview单元格,在单元格的内容视图中添加
UIImageView
UITableView
。在此自定义单元格类中添加tableview的委托函数。创建此自定义单元格的实例时,请在主视图中为注释表设置数据源

根据评论进行编辑

您已经有了一个
UITableViewController
,其中包含一个
UITableView
,用于显示图像和注释。此类将包含处理此数据源的委托方法。让我们将该类的名称命名为ContentViewController

在这个类中,您将有
cellforrowatinexpath
来处理实际的数据源,如下所示:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellId= @"CellId";
    UITableViewCell *cell = nil;
    yourDataObj = [yourDataSource objectAtIndex:indexPath.row];
    cell = [tableView dequeueReusableCellWithIdentifier:cellId];
    if (cell == nil){
       cell = [[[CustomCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId:yourDataObj]autorelease];
    }
    //Do other cell updations here
    // yourDataObj is a custom class which conatins an array to hold your comments data.
}
现在在CustomCell类中,您将拥有
UIImageView
UITableView
。这个CustomCell类的init方法如下所示

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier: (NSString *)reuseIdentifier :(YourDataObj*)cellDisplayData{

     if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {

          //You need to alloc and init your imageView and tableView here.
          self.imageView.image = cellDisplayData.image;// or image url whatever
          self.commentsTableDataSource = cellDisplayData.comments; //commentsTableDataSource is property holding comments array

          self.commentsTable.delegate = self;
          self.commentsTable.dataSource = self;
          [self.commentsTable reloadData]; 
     }
 }
另外,现在在这个自定义单元格类中,您可以添加tableview的委托,并使用commentsTableDataSource作为comments表的数据源。希望您对如何实施有一个想法。请试一试


快乐编码

首先,谢谢你的回复。但是我不太明白“当你创建这个自定义单元格的实例时,从你的主视图中,也为你的注释表设置数据源”,我应该在你的自定义单元格类中将“内部”表视图的数据源和委托添加到哪里。您可以在自定义的cell class.h文件中添加UITableViewDelegate协议,并在此文件中添加CellForRowatineXpath和其他委托方法。您能给我一些例子吗?这是否意味着我可以在一个定制的cell class.h文件上拥有多个tableview委托和数据源方法,如cellforrowatinexpath?编辑了答案。看一看。感谢您的帮助,让我尝试实现它。