Ios 在最初加载表时,如果没有任何动画,如何强制特定行在UITableView中可见?

Ios 在最初加载表时,如果没有任何动画,如何强制特定行在UITableView中可见?,ios,uitableview,Ios,Uitableview,有人建议在视图中滚动到所需的行,但这不适用于iOS 7。我只能在iOS 7的ViewDidDisplay回调中实现这一点。不幸的是,您会看到所需的行滚动到视图中。我不想看到任何滚动,我只是希望加载时该行可见。有人能建议在iOS 7中使用正确的方法吗?如果您知道单元索引,那么它就简单到: [tableView setContentOffset:CGPointMake(cellLocation.x,cellLocation.y) animated:NO]; 在加载tableView数据后立即调用它

有人建议在视图中滚动到所需的行,但这不适用于iOS 7。我只能在iOS 7的ViewDidDisplay回调中实现这一点。不幸的是,您会看到所需的行滚动到视图中。我不想看到任何滚动,我只是希望加载时该行可见。有人能建议在iOS 7中使用正确的方法吗?

如果您知道单元索引,那么它就简单到:

[tableView setContentOffset:CGPointMake(cellLocation.x,cellLocation.y) animated:NO];
在加载tableView数据后立即调用它,它将滚动到位于顶部的单元格。还有其他选择:

[tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:currentRow inSection:currentSection] animated:NO scrollPosition:UITableViewScrollPositionTop];
将此代码用于您想要的任何滚动位置,Apple将负责表格的边界(尽管设置滚动位置是用户定义的,但可能不在表格视图中)

编辑:

您可以在选择代码的周围调用UIView设置不允许动画。这在过去对我来说适用于不同的东西,但我从未在viewDidLoad中尝试过

[UIView setAnimationsEnabled:NO];
//Scroll the tableview
[UIView setAnimationsEnabled:YES];

它可能无法在VIEWWILLEXPEND中工作,因为该表此时没有数据。
添加
[tableView重载数据],它应该可以工作。

让我直截了当地说:当视图出现时,您希望您的表视图在顶部显示某一行吗?是吗

如果是,您希望:

-(void)ScrollToRowatineXpath:(NSIndexPath*)在scrollPosition上的indexPath:(UITableViewScrollPosition)scrollPosition动画:(BOOL)动画

使用单元格indexPath,UITableViewScrollPositionTop作为scrollPosition并设置动画,不这样做

[tableView scrollToRowAtIndexPath:myExampleindexPath atScrollPosition:UITableViewScrollPositionTop animated:NO];

这不是一个答案,而是一个问题。删除此内容并将其作为评论发布。抱歉,在我键入时意外保存。我特别按照您的建议执行了操作。该实现在ViewWillDisplay中不起作用,如果在ViewDidDisplay中使用它,您仍然可以看到该行滚动到视图中。我试图让加载表后不可见的行实际可见,类似于选择“经典”音调的设置>声音>铃声。将显示“Classic”行,即使它大约是表中的第20行,也看不到它的动画或滚动到视图中。是。在视图中,您可能尚未初始化视图内部构件。使用viewDidLoad。在viewDidLoad中不起作用。如果不允许延伸边,它将在视图中工作。很奇怪,;卷轴。。。方法将顶部和底部栏视为可见。换句话说,它总是将我的行滚动到视图中,该行就在选项卡栏(底部栏)下方。请再次阅读问题。OP知道如何滚动表格视图。这不是问题。更新建议围绕内置动画的方法。我总是愿意并乐于学习。请你详细说明一下好吗?我不是唯一一个有这种想法的人:调用reloadData会迫使tableView刷新它所拥有的所有数据并重新绘制它自己。最好不要发出那个调用,让tableView在正确的回调中滚动到行