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];
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容