UITableViewCell内的TableView未被检测到

时间:2013-03-04 08:19:26

标签: ios uitableview

我有两个UITableViews:tableviews1和tableview2。

tableview2位于tableview1的UITableViewCell中。当我点击tableview2的uitableviewcell时,它没有响应但是tableview1 tableviewcell被检测到了。

任何人都可以帮忙解决这个问题吗?

这是我正在使用的代码:

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

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

 if (tableView == orderFoodDetailTableview) {

    if (cell == nil) {

cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

cell.selectionStyle = UITableViewCellSelectionStyleNone;

    }
}
    else {


cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

  [self addUItableViewAsSubView :cell];

        }

  cell.selectionStyle = UITableViewCellSelectionStyleGray;
    }

    return cell;
}



- (void)addUITableViewAsSubView:(UITableViewCell *)cell{

    portionSelected_yVal = [sArray count]*25;
    portionTableview = [[UITableView alloc]initWithFrame:CGRectMake(10, height+53, 140, portionSelected_yVal)];
    portionTableview.delegate = self;
    portionTableview.dataSource = self;
    portionTableview.backgroundColor = [UIColor clearColor];
    portionTableview.hidden = YES;
    portionTableview.layer.borderColor=[UIColor blackColor].CGColor;
    portionTableview.layer.borderWidth=1.0f;
    portionTableview.layer.cornerRadius=2.0f;
    [cell addSubview:portionTableview];
}

1 个答案:

答案 0 :(得分:1)

出于您提到的目的(在您的评论中),您可以动态调整UITableViewCell TableView1的高度,同时用户触摸了tableviewcell。再次触摸该单元格,您可以按正常尺寸调整它。

我希望你明白我的观点。


修改

您必须检查要在UITableView的常用委托方法中执行操作的tableView。

说...你有两个表格视图T1和T2。

然后在下面的方法中,你必须首先检查,为哪个tableview(T1或T2)调用该方法。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    if (tableView == T1)
        // Return number of sections for T1;
    else if (tableView == T2) 
        // Return number of sections for T2;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    if (tableView == T1)
        // Return number of rows for T1;
    else if (tableView == T2) 
        // Return number of rows for T2;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (tableView == T1)
        // Create and Return cell for T1;
    else if (tableView == T2) 
        // Create and Return cell for T2;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    if (tableView == T1)
        // Do stuff for T1 related actions;
    else if (tableView == T2) 
        // Do stuff for T2 related actions;
}

是否清楚?