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