UITableView显示不正确但传入数据

时间:2012-08-16 03:20:02

标签: uitableview ios5 xcode4.3

我有一个UITableView从HTML中获取数据。抓取工作正常,我通常有大约20个单元格显示,从1,2,3,4,5到20。

然而,在获取之后,细胞仅显示所有细胞上第一个细胞中的内容。 (即1,1,1,1,1,1)如果我向下滚动,我会看到6,7,8,......,20。如果我再次向上滚动,我会看到桌子变成正常...

我正在测试代码,我在insertNewObject类中发现如果我插入0索引,那么一切都会正常。但是,如果我只是在最后一个索引处添加对象或插入对象,那就不行了。

这是我的insertNewObject类的代码:

- (void)insertNewObject:(id)sender {
    if (!_objects) {
        _objects = [[NSMutableArray alloc] init];
    }

// Working code, but I want the order from the top 1, 2, 3, ..., 20 rather than 
// 20, 19, 18, ..., 2, 1
// [_objects insertObject:sender atIndex:0];

// And the code below doesn't show up correctly...
//    [_objects insertObject:sender atIndex:(_objects.count)];
//    [_objects addObject:sender];

    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
    [self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}

这很奇怪,我认为它与绘图有关,因为UITableView显示一切都很好,如果我继续上下滚动并“清理”显示...但如果我做setDisplay,一切都没有发生......刷新表并不能解决问题......

有什么想法吗? 感谢

1 个答案:

答案 0 :(得分:0)

在你的问题中没有足够的背景可以肯定地知道,但我想也许你在这里努力工作。您可以使用NSMutableArray方法addObject:将新对象追加到数据数组的末尾。完成后,您应该只需调用reloadData,您的tableView将重绘为包含新数据项的单元格。

- (void)insertNewObject:(id)sender
{
    if (!_objects) {
        _objects = [[NSMutableArray alloc] init];
    } 
    [_objects addObject:sender];
    [self.tableView reloadData];
}