iphone - 在 View 显示之前立即滚动到表中的行

标签 iphone objective-c cocoa-touch uitableview scroll

带有表格的 View 被推送到屏幕上,我希望它在屏幕实际显示之前滚动到表格中的特定行。我在最终的 View Controller 中使用这段代码。

NSIndexPath *scrollToPath = [NSIndexPath indexPathForRow:5 inSection:0]; 
[theTable scrollToRowAtIndexPath:scrollToPath atScrollPosition:UITableViewScrollPositionTop animated:NO];

当我把它放在 viewDiDAppear 方法中时,它会从表格的初始位置(顶部)短暂闪烁到我想要的行。我不希望它显示初始位置。如果我将它放在 viewDidLoad 或 viewWillAppear 中,那么它会因 NSRangeException 而崩溃,大概是因为表尚未设置。

如何让它滚动而不显示初始位置?

最佳答案

感谢 Shaggy and Dying Cactus 为我指明了正确的方向。答案是加载表格并在 viewWillAppear 中滚动:

-(void)viewWillAppear:(BOOL)animated
{
    [theTable reloadData];
    NSIndexPath *scrollToPath = [NSIndexPath indexPathForRow:5 inSection:0]; 
    [theTable scrollToRowAtIndexPath:scrollToPath atScrollPosition:UITableViewScrollPositionTop animated:NO];   
}

关于iphone - 在 View 显示之前立即滚动到表中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2932110/

相关文章:

ios - 重新加载蓝牙信号强度

iOS 应用程序停止为 iOS 记录分析

ios - 找不到“openssl/rsa.h”文件

objective-c - 在实际代码中使用 Uncle Bob 的 Clean Code 中的想法

ios - 从本地联系人获取详细信息后如何区分电话号码

iphone - 如何只为 UITableViewController 启用重新排序?

iphone - 应用内购买完成后是否可以收到通知?

iphone - 为什么 Three20 会做一些奇怪的事情,导致 Xcode 4.2 出现问题?

ios - UIButton Action 选择器

iphone - 如果返回否,MFMailComposeViewController canSendMail 更改警报