美文网首页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