当我运行我的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;
}
非常感谢任何帮助!
答案 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