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