2012-08-16 49 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

相關問題