我有一个 UITableView 包含许多选项并允许用户选择其中一个选项。我用复选标记附件标记选定的行。
在 iPad 上,我通过单击按钮在弹出窗口中打开它,表格 View 显示为选中的行之一。但有时这个选中的行不在屏幕上,需要滚动才能找到它。当我打开弹出窗口时,我想滚动到这个选中的行。我尝试在 viewDidAppear 中执行 scrollToRowAtIndexPath:atScrollPosition:animated: 但我发现 viewDidAppear 在调用 cellForRowAtIndexPath 之前被调用,并且不会滚动到所选行
- (void)viewDidAppear:(BOOL)animated
{
NSLog(@"viewDidAppear called");
[super viewDidAppear:animated];
//currentSelectedIndexPath is a correct index path
[self.tableView scrollToRowAtIndexPath:currentSelectedIndexPath atScrollPosition:UITableViewScrollPositionMiddle animated:NO];
}
最佳答案
尝试调用[self.tableView reloadData]
就在滚动 viewDidAppear
之前.
关于objective-c - 如何在第一次打开时滚动到 UITableView 中的一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7758120/