我的自定义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的第一个来自哪里。
有人有什么想法吗?
答案 0 :(得分:1)
在您的代码中,您分配了一个普通的UITableViewCell
,而不是您自定义单元格的实例。在reuseIdentifier
中设置initWithStyle
不足以加载自定义单元类的实例。
如果您针对iOS 5及更高版本开发,则可以使用registerNib:forCellReuseIdentifier:
注册包含自定义单元格的NIB文件。然后,dequeueReusableCellWithIdentifier:
将始终返回该NIB的实例。