iOS 开发

tableview 设置初始显示位置

2016-09-19  本文已影响848人  34码的小孩子

需要设置初始显示位置,最初想到的是用viewWillAppear方法或者viewDidAppear方法设置tableview的偏移量,但是后来发现没有效果。后来试着在viewDidLayoutSubviews设置,真的有用。

- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];

//用一个标识防止不停地调用
if (!_hasFinishLayouSubview) {
    _hasFinishLayouSubview = YES;
    
    [_mainTableView layoutIfNeeded];
    [_mainTableView setContentOffset:CGPointMake(0, 400)];
}}

如果是想要跳转到tableview的某一行,则需要修改以下语句(注意,tableview一定要存在该行,否则会出错)。

//[_mainTableView setContentOffset:CGPointMake(0, 400)]; 
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[_mainTableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:NO];

如果tableview的数据源不是静态的话,也不能实现跳转到某一行。可能是因为在调用viewDidLayoutSubviews方法时,tableview还没有确定数据源。

上一篇下一篇

猜你喜欢

热点阅读