美文网首页
Tabelview滚动指定位置

Tabelview滚动指定位置

作者: 小李不木 | 来源:发表于2020-07-23 14:17 被阅读0次

    1: tableView的contentOffset

    tableView, 在数据源添加一条数据后reloadData,tableView的contentOffset值变了

    iOS 11中,tableView默认启用Self-Sizing

    openvarestimatedRowHeight:CGFloat 

    // default is UITableViewAutomaticDimension, set to 0 to disable

    openvarestimatedSectionHeaderHeight:CGFloat

    // default is UITableViewAutomaticDimension, set to 0 to disable

    openvarestimatedSectionFooterHeight:CGFloat

    // default is UITableViewAutomaticDimension, set to 0 to disable

    tableView的contentSize大小一开始也是不准确的,会随着滑动逐渐变化

    解决只要关闭这个功能就可以了

    tableView.estimatedRowHeight = 0

     tableView.estimatedSectionHeaderHeight = 0

     tableView.estimatedSectionFooterHeight = 0

    2:iOS tableView 滚动到指定行/段

       UITableViewScrollPositionNone,

       UITableViewScrollPositionTop, // 顶部

       UITableViewScrollPositionMiddle, // 中间

       UITableViewScrollPositionBottom// 底部

    最近选中的cell 滚动到指定位置 :

    [self.tableView scrollToNearestSelectedRowAtScrollPosition:UITableViewScrollPositionTop animated:YES];    

    滚动到顶部 

    [self.tableView setScrollsToTop:YES]; 

     让指定区域滚动到可视区域,如果已经在可视区域 则该方法无效 

    [self.tableView scrollRectToVisible:CGRectMake(0,0,100,100)  animated:YES];

    3.滚动到指定的IndexPath

    滚动指定段的指定row  到 指定位置

    [self.tableView scrollToRowAtIndexPath: [NSIndexPath indexPathForRow:0inSection:0] atScrollPosition:UITableViewScrollPositionTop  animated:YES];

    通过设置ScrollView的contentOffset的方式滚动tableView到指定的位置

    [self.tableView setContentOffset:CGPointMake(0,0)  animated:YES];

    [mainTableView setContentOffset:CGPointZero.  animated:YES];

    4: iOS tableView 刷新后滚动到指定行

     [CATransaction begin];

     [CATransaction setCompletionBlock:^{

        [self.tableView setContentOffset:CGPointMake(0, 0) animated:NO];                     

       }];

     [self.tableView reloadData];

     [CATransaction commit];

    ScrollTop 的时候会出现滑动很大一部分空白区域。estimatedSectionHeaderHeight动态计算属性初始值不要设置太高,高出实际高度这里计算会出问题。

    参考文章:

    iOS tableView 滚动到指定行/段 以及遇到的bug 指南 - 简书

    判断tableviewcell在可视区域的几种方法 - 简书

    相关文章

      网友评论

          本文标题:Tabelview滚动指定位置

          本文链接:https://www.haomeiwen.com/subject/xkzphktx.html