删除行时平滑重新加载uitableview数据

时间:2011-07-06 07:43:42

标签: iphone objective-c ipad uitableview

当我滚动到屏幕底部时,我正在尝试重新加载它。我删除前几行并在底部添加更多行。 之前将新闻行添加到uitableview的数据源中,我调用[tableview reloaddata]方法。这是因为我希望tableview显示之前可见的行。

它正确地重新加载数据但是在tableview中突然出现了混乱。它闪烁,无法提供良好的用户体验。所以我的问题是

  1. 如何更新uitableview 当从顶部开几行时 删除没有 抽搐/闪烁效果?

  2. 当前可见行也应保留在刷新视图中。

  3. 有什么想法吗?我正确更新数据源时没有崩溃。

    TIA,

    Praveen S

1 个答案:

答案 0 :(得分:0)

从tableView委托中的数据源中删除数据。

 -(void) tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
    {


            NSString *key = [keys objectAtIndex:indexPath.section];
            NSMutableArray *nameSection =[names objectForKey:key];

            int itemID=item.ID;
            if ([nameSection count]==1) {
                [self.keys removeObjectsInArray:[NSArray arrayWithObject:key]];

                [tableView deleteSections:[NSIndexSet indexSetWithIndex:indexPath.section] withRowAnimation:UITableViewRowAnimationFade];
            }
            else {
                [nameSection removeObjectAtIndex:indexPath.row];
                [self.names setValue:nameSection forKey:key];

                [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] 
                                 withRowAnimation:UITableViewRowAnimationFade];
            }
        }

check this too