我感觉自己像个菜鸟问这个问题,但这是我的问题:
我想显示一个带有 7 个自定义单元格的 tableView。这些细胞都没有被重复使用。这意味着用户将看到 7 个不同的单元格,不多也不少。
我在 viewDidLoad 方法中创建了单元格,并将所有这些单元格添加到 listCells
数组中。之后,我使用简易模式绘制这些单元格:
UITableViewCell *cell = nil;
if (indexPath.row == 0)
{
static NSString *MyIdentifier = @"Cell";
cell = (DetAlertCell *)[localTableView dequeueReusableCellWithIdentifier:nil];
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"DetAlertCell" owner:self options:nil];
cell = [listCells objectAtIndex:indexPath.row];
}
}
....
但是,这是行不通的。它向我展示了一个空白 View 。每个单元格都是使用 .xib 文件以及 .h 和 .m 类创建的。有什么我想念但应该做的吗?
最佳答案
只是不要调用 [localTableView dequeueReusableCellWithIdentifier:nil]
并为索引路径加载正确的单元格。
你还说你在viewDidLoad中加载cell,那你为什么要加载nib:
[[NSBundle mainBundle] loadNibNamed:@"DetAlertCell" owner:self options:nil];
如果不是,它们应该已经是数组了。 为什么要检查行是否为 0 然后加载行,仍然只会加载第一行。
试试这个:
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
return [listCells objectAtIndex:indexPath.row];
}
关于iphone - 在不重复使用标识符的情况下使用多个自定义单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6355257/