需要設(shè)置初始顯示位置走敌,最初想到的是用viewWillAppear方法或者viewDidAppear方法設(shè)置tableview的偏移量绘沉,但是后來(lái)發(fā)現(xiàn)沒(méi)有效果春宣。后來(lái)試著在viewDidLayoutSubviews設(shè)置痢毒,真的有用米丘。
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
//用一個(gè)標(biāo)識(shí)防止不停地調(diào)用
if (!_hasFinishLayouSubview) {
_hasFinishLayouSubview = YES;
[_mainTableView layoutIfNeeded];
[_mainTableView setContentOffset:CGPointMake(0, 400)];
}}
如果是想要跳轉(zhuǎn)到tableview的某一行,則需要修改以下語(yǔ)句(注意舌镶,tableview一定要存在該行柱彻,否則會(huì)出錯(cuò))豪娜。
//[_mainTableView setContentOffset:CGPointMake(0, 400)];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[_mainTableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:NO];
如果tableview的數(shù)據(jù)源不是靜態(tài)的話,也不能實(shí)現(xiàn)跳轉(zhuǎn)到某一行哟楷×鲈兀可能是因?yàn)樵谡{(diào)用viewDidLayoutSubviews方法時(shí),tableview還沒(méi)有確定數(shù)據(jù)源卖擅。