1

我有两个 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];
}
4

1 回答 1

1

对于您提到的目的(在您的评论中),您可以在用户触摸 tableviewcell 时动态调整UITableViewCell的高度。TableView1再次触摸该单元格,您可以将其调整回正常大小。

我希望你明白我的意思。


编辑

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

例如,假设您有两个 tableviews 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;
}

清楚吗 ?

于 2013-03-04T10:25:54.390 回答