自定义UITableViewCells没有显示iOS中UITableView的正确数据

时间:2014-05-01 15:26:27

标签: ios objective-c uitableview nsarray

我有一个自定义UITableViewController已经传递给NSArray NSArrays,其中包含NSDictionarys NSDictionary。就目前而言(直到我开始工作)UITableViewController个对象只有" id"和"价值"元件。

  • UITableViewCell使用自定义NSDictionary,目前只有一个标签。

  • 此外,为了暂时的简单起见,所有CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:@"CellIdentifier"]; if (cell == nil) { cell = [[[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CellIdentifier"] autorelease]; NSDictionary *temp = [tmp objectAtIndex:0]; cell.descriptionLabel.text = [temp objectForKey:@"value"]; cell.delegate = self; } 个对象仅包含"值"的数字。所以我可以更容易地跟踪进展情况。所以数组[0] [0]有" 1-1&#34 ;,数组[1] [0]有" 2-1"并计数。

问题:

表行的大小使得我最初只能看到3行。滚动时,第4行正确显示" 4-1"。但是,在遵循代码时,我注意到第5行没有正确初始化。

{{1}}

我注意到" cell"对象不会返回nil并且已经初始化。它显示" 1-1"在标签而不是" 5-1"。

任何人都知道为什么?我不认为它与使用的相同的单元标识符名称有关。

非常感谢帮助。

1 个答案:

答案 0 :(得分:2)

您的代码必须是这样的:

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

    cell.delegate = self;
}

NSDictionary *temp = [tmp objectAtIndex:indexPath.row];
cell.descriptionLabel.text = [temp objectForKey:@"value"];

我假设tmp是一个数组,您希望数组中的值基于单元格的indexPath.row