美文网首页iOS 知识点程序员iOS Developer
ios:tableView偏移量设置无效怎么回事

ios:tableView偏移量设置无效怎么回事

作者: IMKel | 来源:发表于2016-12-23 10:41 被阅读3117次

    笔者最近遇到一个问题,就是给tableView的contentOffset.y属性设值,发现如果设置的值为正数的话,有效果(tableView向上偏移),值为负数的话,没效果(笔者原来猜测tableView会向下偏移的,结果是我想多了,也不知道自己错在哪里.)但是笔者的目的就是想要让tableView默认向下偏移,怎么办?
    可以使用tableView的contentInset属性来设置.代码如下

    UITableView *tv = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];
        _tv = tv;// 保存UITableView对象
        
    // 通过contentOffset属性设置tableView向下的偏移量,你会发现是无效的.
    //    CGPoint offset = tv.contentOffset;
    //    offset.y = -100;
    //    tv.contentOffset = offset;
    
    // 设置tableView偏移量就是这行代码了(这里设置tableView默认向下偏移100)
        tv.contentInset = UIEdgeInsetsMake(100, 0, 0, 0);
    
    

    总结:设置tableView偏移量,就一行代码
    tableView.contentInset = UIEdgeInsetsMake(100, 0, 0, 0);

    注意:如果你的项目中需要监听tableView的滚动,那么tableView滚动多少这个值,还需从talbeView的contentOffset这个属性获取.示例代码如下:

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
        // 打印tableView在y方向上偏移了多少
        NSLog(@"%lf", scrollView.contentOffset.y);
    }
    

    相关文章

      网友评论

      • NSL_zerom:-(NSNumber *)xy_noDataViewCenterYoffset
        想问下这个偏移量应该如何来设置,初学不太懂如何设置
        不设置直接按着你的代码来运行显示的文字和图片之间距离有点远
        求指导
      • CoderFM:知道为什么这样设置才是重要
        IMKel:感觉这两个属性值得好好研究,谢谢指教
        CoderFM:@IMKel contentInset是内边距 距离顶部的距离100之后 相当于contentOffset.y 为-100 因为设置了足够的内边距 所以可以向下便宜这么多 反之刚开始的内边距距离顶部为0 根本就不能便宜这么多 所以设置了无效
        IMKel:@CoderFM 你说得对,能为我解除疑惑吗?请指教

      本文标题:ios:tableView偏移量设置无效怎么回事

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