滚动后单元格变空。 (Xcode中)

时间:2012-09-11 13:51:46

标签: objective-c ios xcode uitableview

我的tableview有问题。当我滚动并且单元格从屏幕上消失时,它变为空白。我在故事板中构建了一个带有两个标签和一个imageview的原型单元,它与我在代码中使用的标识符相同。我还为customcell构建了一个自定义类。这是cellForRowAtIndexPath中的代码:

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

static NSString *CellIdentifier = @"Cell";
Scientist *currentScientist = [[xmlParser data] objectAtIndex:indexPath.row];

CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
    cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

}

cell.self.cellName.text = currentScientist.self.name;
cell.self.cellSubject.text = currentScientist.self.subject;
cell.self.cellImage.image = currentScientist.self.image;

return cell;
}

我不知道您是否需要更多代码来帮助我。

2 个答案:

答案 0 :(得分:1)

就我而言,为每个人创建一个不同的单元格标识符就可以了。我有类似的东西:

NSString *cellIdentifier = [NSString stringWithFormat:@"identifier%i%i", indexPath.section, indexPath.row];

其余部分应保持不变。

答案 1 :(得分:0)

我发现了一篇详细说明您遇到的问题的文章。我还建议打印出Scientist数据,以确保使用objectAtIndex:indexPath.row调用正确获取对象。

从我在下面链接的文章中,我愿意打赌你的dequeueReusableCellWithIdentifier是问题所在。你能解决这个问题的一个简单方法是给每个细胞提供它自己独特的细胞识别标记(只是为了测试理论)。但是,通过更改cellForRowAtIndex方法,找到解决此问题的合适方法。

Source