iPhone可重复使用的单元格在滚动时不显示已更改的数据

时间:2012-05-26 00:48:58

标签: iphone uitableview cell reusability

我有一个表格视图。我创建了一个方法,它使用单元格获取所需的所有数据并返回更新的单元格。在那种方法中,我有:

我的行格式是这样的     static NSString * CellIdentifier = @“Cell”;

UITableViewCell *cell = [tableView 
                         dequeueReusableCellWithIdentifier:CellIdentifier];
cell = myCellcreationMethod : cell : reuseIdentifier: other arguments;

MycellCreation方法如下: MycellCreation with args some strings,cell和reuseIdentifier。

if ( cell == nil ) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier];
    //Here code that creates a custom image view something like:
    thumbnailView = [[UIImageView alloc] initWithFrame:CGRectMake(9, 9, 70, 70)];
    thumbnailView = [imUtil getImageViewWithRoundedCorners:thumbnailView andRadius:10.0];
    thumbnailView.contentMode = UIViewContentModeScaleAspectFit;
    [cell.contentView addSubview:thumbnailView];
    //same here for another image view,
    //same again
    //and there same for a UILabel
}
//Here I set in each case the data for each imageView from above and the UIlabel text like

UIImage *thumbnailImage = [imUtil getThumbnailImageWithFile:thumbnail];
thumbnailView.image = thumbnailImage;
//the others go here
textLabel.text = @"something";

return cell;

所有单元格都具有相同的标识符,因为它们都属于同一类型。但是当我向下滚动时,它不是显示与列表中的下一个对象相对应的数据(新缩略图新图像,uilabel中的新文本),而是复制第一个对象。我想它会加载重用的单元格,但不会将新数据放入。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我找到了答案。我不应该只在tableview类中使用方法添加视图。我创建了一个UITableView的新子类,用我的自定义视图初始化它,并在那里创建了一个设置新数据的方法。然后使用它们两个,它就像一个魅力!