2012-08-16 46 views
0

我有一个UITableView从HTML获取数据。抓取工作正常,我通常有大约20个单元格可以显示,从1,2,3,4,5到多达20个。UITableView显示不正确,但数据通过

但是,在抓取之后,单元格只显示第一个内容细胞在所有细胞上。 (即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,什么也没有发生......刷新表格并不能解决问题...

任何想法? 谢谢

+0

好吧...我已经做了一些非常愚蠢的...... 我做了一个数组,把他们在第一,和反循环和把它们放进UITable与[_objects insertObject:发件人atIndex: 0]; 这是一个解决方案,但我不认为这是正确的方法。有没有办法解决这个问题? – snowmen10 2012-08-16 03:39:49

回答

0

在你的问题中没有足够的上下文来确定地知道,但我想也许你正试图在这里做太多的工作。您可以使用NSMutableArray方法addObject:将新对象追加到数据数组的末尾。做完这些之后,你应该可以直接调用reloadData,你的tableView会重新绘制自己,为你的新数据项目添加一个单元格。

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

我试过这个方法,但它仍然显示1,1,1,1,1,1,7,8,9,...,20 ...我必须通过向上和向下滚动来“清除”单元格它会返回1,2,3,4,5,6,7,8,9,...,20 ...这很奇怪......当我使用UITable时,从未经历过这个... – snowmen10 2012-08-16 18:16:08

相关问题