uitableview重载问题

时间:2011-03-10 14:01:53

标签: iphone scroll reload tableview

我有一个tableviewcontroller,在其中我正在尝试加载表的数据。我有一个数组并使用此数组创建我的自定义表格单元格。它在第一次工作正常,但当我想刷新表数据(更新数组后我调用tableview的reloadData方法)但滚动后出现更新的数据。并且新的数组大小比滚动到底部时抛出异常的第一个更小。

reloadData无法正常工作

myArray = [self getNewData:0];  //updating array which is used to creating cells
[self.tableView reloadData];    //reload data

感谢...

2 个答案:

答案 0 :(得分:1)

听起来对reloadData的调用完全无效。因此,检查self.tableView在您调用它时是非零的 - 将NSLog放在该行之上,如下所示:

NSLog(@" self.tableView = %@", self.tableView);

如果没有,那就是你的问题。

答案 1 :(得分:1)

你说,滚动后出现更新的数据。 您是否在单元格中添加标签而不是删除标签?在自定义之前删除单元格上添加的所有标签。

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

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    for (UIView * view in cell.contentView.subviews)
    {
        [view removeFromSuperview];
        view = nil;
    }
    //Your customization
    return cell;
}

情况可能如此。 但是occulus提出的建议似乎对我来说是更精确的解决方案。