仅在Tableview ios中选择第一个单元格后出现的第二个单元格

时间:2011-07-09 05:36:33

标签: ios uitableview selection cell

当我运行我的ios应用程序时,只有第一个单元格显示在TableView中,然后单击时显示第二个单元格。我希望他们两个同时显示,但我无法弄清楚这种行为。

以下是我的视图加载的代码

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

    static NSString *CellIdentifier = @"ProductCellId";

    ProductTableCell *cell = 
        (ProductTableCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        [[NSBundle mainBundle] loadNibNamed:@"ProductTableCell" owner:self options:nil];
        cell = self.productCell;
    }    

    Product *product = [products objectAtIndex:indexPath.row];
    [cell configureForProduct:product];

    return cell;
}

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

由于您是从“界面”构建器加载单元格,请尝试以下操作:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:   (NSIndexPath *)indexPath {
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ProductTableCell"];
        if (cell == nil) {
        // Load the top-level objects from the custom cell XIB.
        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"ProductTableCell" owner:self options:nil];
        // Grab a pointer to the first object (presumably the custom cell, as that's all the XIB should contain).
        cell = [topLevelObjects objectAtIndex:0];
    }


Product *product = [products objectAtIndex:indexPath.row];
[cell configureForProduct:product];


    return cell;
}

改变这个:

static NSString *CellIdentifier = @"ProductCellId";

为:

static NSString *CellIdentifier = @"ProductTableCell";

您可以在此问题中找到有关您尝试执行的操作的其他信息:Load cells from XIB files