UITableView 回到顶部

一、tableView 的数据源没有变化

这种情况最简单,有好几种方法

  • [tableView setContetnOffset:CGPointZero]
  • [tableView scrollToVisibleRect:]

二、tableView 的数据源改变了

比如增加或者删除数据,这时候 contentOffset 就不准了,所以上面的方法都不可用,可以用

scrollToRowAtIndexPath 来实现。

NSUInteger sections = [self.tableView numberOfSections];
    if (sections >= 1) {
        NSUInteger rows = [self.tableView numberOfRowsInSection:0];
        NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
        if (rows == 0) {
            indexPath = [NSIndexPath indexPathForRow:NSNotFound inSection:0];
        }
        
        [self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionNone animated:YES];
    }

你可能感兴趣的:(UITableView 回到顶部)