0

我的自定义 UITableViewCell 遇到了一个非常奇怪的问题。我在 Interface Builder 中有一个标识符为“ThreadCell”的单元格,并带有一些自定义标签。这些标签被标记,所以我可以访问它们。

在我的代码中,我正在执行以下操作:

static NSString *CellIdentifier = @"ThreadCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if(cell == nil){
    cell = [[UITableViewCell alloc] initWithStyle: UITableViewCellStyleDefault reuseIdentifier: @"ThreadCell"];
}

Person *person = [self.people objectAtIndex: indexPath.row];
UILabel *nameLabel = (UILabel *)[cell viewWithTag: 0];
nameLabel.text = person.nickname;

return cell;

这似乎工作正常,有一个例外。TableView 绘制如下:

细胞

这显然不是我的自定义单元格。但奇怪的是,当我点击一个单元格时,我得到了这个:

细胞

我的自定义单元格,绘制在默认单元格后面。什么?!我不确定这是怎么发生的,因为我从来没有在任何地方设置 textview 的标题,所以我不确定第一个 John Smith 来自哪里。

有人有想法么?

4

1 回答 1

1

在您的代码中,您分配一个普通的UITableViewCell而不是自定义单元格的实例。设置reuseIdentifierininitWithStyle不足以加载自定义单元类的实例。

如果您为 iOS 5 及更高版本开发,则可以使用registerNib:forCellReuseIdentifier:注册包含自定义单元格的 NIB 文件。dequeueReusableCellWithIdentifier:然后将始终返回该 NIB 的实例。

于 2012-08-18T22:06:15.140 回答