2011-02-04 96 views
0

我有一個UITableViewNSFetchedResultsController更新。 UITableView對於偶數行和奇數行具有交替的行顏色。我需要添加對插入和刪除對象的支持,所以我實現了NSFetchedResultsControllerDelegate來處理這個問題。然而,現在我的交替顏色方案在插入任何地方但最後插入。任何想法如何解決這個問題,而無需重新加載表視圖(而不是鬆動我的動畫)?NSFetchedResultsControllerDelegate和交替表格視圖單元

這裏是我的代碼至今:

- (UITableViewCell *)tableView:(UITableView *)tableView 
     cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    CustomTableViewCell *cell = ...; 
    indexPath.row % 2 == 0 ? [cell odd] : [cell even]; 
    return cell; 
} 

- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)object 
     atIndexPath:(NSIndexPath *)deleteIndexPath 
    forChangeType:(NSFetchedResultsChangeType)type 
     newIndexPath:(NSIndexPath *)insertIndexPath 
{ 
    switch(type) 
    { 
    case NSFetchedResultsChangeInsert: 

     [self.mainTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:insertIndexPath] 
        withRowAnimation:UITableViewRowAnimationFade]; 
     break; 
    case NSFetchedResultsChangeDelete: 
     [self.mainTableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:deleteIndexPath] 
        withRowAnimation:UITableViewRowAnimationFade]; 
     break; 
    } 
} 

回答

0

下面是什麼我做了我的項目之一:

- (void)reloadRowsFromIndex:(NSUInteger)index { 
    NSMutableArray *indexPaths = [[NSMutableArray alloc] init]; 
    for (NSInteger i = index; i < [items count]; i++) { 
     [indexPaths addObject:[NSIndexPath indexPathForRow:i inSection:0]]; 
    } 
    [tableView reloadRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade]; 
    [indexPaths release]; 
} 

reloadRowsFromIndex:被稱爲內tableView:commitEditingStyle:forRowAtIndexPath:,與第一索引路徑被更改。

+0

這是重新加載整個表?我有一個帶有幾千條記錄的抓取結果控制器,這看起來好像可能會殺死它... – 2011-02-10 20:23:28

相關問題