如何使用动画从tableview插入行

时间:2011-04-21 10:22:24

标签: iphone uitableview animation

我是iphone的新手,请帮助我,在我的应用程序中显示数据,从sql server通过web服务访问tableview,但我的问题是当插入新行并添加到tableview时,新输入的行被添加到tableview但是它正常添加,我想在向tableview添加新行时添加动画。我不知道如何在输入新记录后向tableview添加动画,任何人都有任何想法请告诉我。

4 个答案:

答案 0 :(得分:3)

要插入一行:

    int rowIndex = 0;//your row index where you want to add cell
    int sectionIndex = 0;//your section index
    NSIndexPath *iPath = [NSIndexPath indexPathForRow:rowIndex inSection:sectionIndex];
    NSArray *array = [NSArray arrayWithObject:iPath];
    [self.tableView insertRowsAtIndexPaths:array withRowAnimation:UITableViewRowAnimationFade];

但是你需要在dataSourse数组(用于填充表中数据的数组)中的指定索引处确保你有一条额外的记录。

答案 1 :(得分:1)

  

insertRowsAtIndexPaths:withRowAnimation:

     

在接收器中插入行   由数组识别的位置   索引路径,带有动画选项   插入。

- (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

UITableView Class Reference

答案 2 :(得分:0)

您可以使用UITableView的方法- (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

答案 3 :(得分:0)

问题:因此,如果您在tableview上插入数据,那么用户必须向下滚动才能找到他离开的位置?

解决方案:为什么不通过计算偏移量并在tableview更新完成之前设置偏移量来为用户向下滚动。

如何计算偏移量? (插入顶部的细胞数量)*(细胞高度)

注意:在下面的示例/计算中,我从插入的单元格数中减去两个单元格,以便用户可以预览顶部的数据

    [strongSelf.tableView beginUpdates];

    //INSERT DATA & CELLS ON TOP

    //REMOVE DATA ON BOTTOM IF NECESSARY

    //moving scrollview right back down so user can resume where last left off
    NSInteger estimatedRow = strongSelf.tableView.rowHeight * ( (indexPathsAdding.count) - 2);
    [strongSelf.tableView setContentOffset:CGPointMake(0, estimatedRow)];


    [strongSelf.tableView endUpdates];