UITableView insert rows without scrolling

前端 未结 6 1376
我在风中等你
我在风中等你 2020-12-05 03:13

I have a list of data that I\'m pulling from a web service. I refresh the data and I want to insert the data in the table view above the current data, but I want to keep my

6条回答
  •  情深已故
    2020-12-05 04:05

    If I understand your mission correctly,

    I did it in this way:

    if(self.tableView.contentOffset.y > ONE_OR_X_ROWS_HEIGHT_YOUDECIDE
    {
    
        self.delayOffset = self.tableView.contentOffset;
        self.delayOffset = CGPointMake(self.delayOffset.x, self.delayOffset.y+ insertedRowCount * ONE_ROW_HEIGHT);
    
        [self.tableView reloadData];
    
        [self.tableView setContentOffset:self.delayOffset animated:NO];    
    
    
    }else
    {
        [self.tableView insertRowsAtIndexPath:indexPathArray   WithRowAnimation:UITableViewRowAnimationTop];
    
    }
    

    With this code, If user is in the middle of the table and not the top, the uitableview will reload the new rows without animation and no scrolling. If user is on the top of the table, he will see row insert animation.

    Just pay attention in the code, I'm assuming the row's height are equal, if not , just calculate the height of all the new rows you are going to insert. Hope that helps.

提交回复
热议问题