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

笔者最近遇到一个问题,就是给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);
}

你可能感兴趣的:(ios:tableView偏移量设置无效怎么回事)