在表视图中如何在ios中的扩展单元格中添加另一个自定义单元格?

时间:2013-08-16 06:07:18

标签: ios objective-c uitableview custom-cell

嗨,我过去几天一直在努力扩展单元格,从互联网的一些建议我找到扩展customcell的代码。现在我的问题是我在这里使用自定义单元格,所以在扩展单元格之后我想在展开的自定义单元格中添加另一个自定义单元格所以任何人都可以帮我做这个???提前谢谢

@interface MyHomeView ()
{
    NSIndexPath *selectedindexpath;

}
@end


-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    selectedindexpath=indexPath;

}

这是如何增加表格高度

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{

    if(selectedindexpath!=nil &&[selectedindexpath compare:indexPath]==NSOrderedSame)
    {

               return 140;
    }


    return 52;

}

2 个答案:

答案 0 :(得分:0)

这是Apple的示例代码 Sample code for submenu

此示例代码显示如何使用UITableView构建子菜单。基本思路是菜单项将是一个表的一部分,子菜单项将是一行各自的部分。

答案 1 :(得分:0)

对于这个子菜单,请参考@Iducool发布的答案。对于你的问题 - > “在表视图中如何在ios中的扩展单元格中添加另一个自定义单元格?” 为此,您最好在扩展单元格中添加另一个UITableView,以便您可以轻松地管理它们,下面的示例给出了将UITableView放入Custom UITableView单元格的想法

   //in your main Table view 

  #import "ViewController.h"
  #import "CustomCell.h"
  @interface ViewController ()<UITableViewDataSource , UITableViewDelegate>

  @end

  @implementation ViewController

  - (void)viewDidLoad
 {
      [super viewDidLoad];
      // Do any additional setup after loading the view, typically from a nib.
 }

 - (void)didReceiveMemoryWarning
  {
      [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
  }

  - (void)dealloc 
  {
    [_aTV release];
    [super dealloc];
  }


  -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
  {
      return 1;
  }

  -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
      return 3;
    }

  -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  {
   CustomCell *cell = [self.aTV dequeueReusableCellWithIdentifier:@"Cell"];
   if(cell == nil)
     {
        cell = [[[CustomCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"]autorelease];
     }

   cell.dataAraay = [NSMutableArray arrayWithObjects:@"subMenu->1",@"subMenu->2",@"subMenu->3",@"subMenu->4",@"subMenu->5", nil];
   return  cell;
  }

  -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
  {
     return 150;
  }


   //in your custom tableview cell 
   //  .m file
   #import "CustomCell.h"

   @implementation CustomCell 
   @synthesize dataAraay; //array to hold submenu data

   - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
  {
     self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
     if (self) {
    // Initialization code
     self.frame = CGRectMake(0, 0, 300, 50);
     UITableView *subMenuTableView = [[UITableView alloc]initWithFrame:CGRectZero style:UITableViewStylePlain]; //create tableview a

      subMenuTableView.tag = 100;
      subMenuTableView.delegate = self;
      subMenuTableView.dataSource = self;
      [self addSubview:subMenuTableView]; // add it cell
      [subMenuTableView release]; // for without ARC
   }
    return self;
 }

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
 {
     [super setSelected:selected animated:animated];

      // Configure the view for the selected state
 }

 -(void)layoutSubviews
  {
     [super layoutSubviews];
     UITableView *subMenuTableView =(UITableView *) [self viewWithTag:100];
     subMenuTableView.frame = CGRectMake(0.2, 0.3, self.bounds.size.width-5, self.bounds.size.height-5);//set the frames for tableview

  }

 //manage datasource and  delegate for submenu tableview
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
  {
     return 1;
  }

   -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
   {
       return dataAraay.count;
   }

  -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  {
      UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cellID"];
     if(cell == nil)
      {
         cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cellID"]autorelease];
      }
    cell.textLabel.text = [self.dataAraay objectAtIndex:indexPath.row];

    return cell;

 }

@end


希望这会有所帮助:)