我有一个UITableView,其中包含许多选项,并允许用户选择这些选项之一。我用选中标记附件标记了选定的行。

在iPad上,单击按钮即可在弹出窗口中打开它,并显示表格视图并选中其中一行。但有时此选中的行不在屏幕上,需要滚动才能到达该行。打开弹出窗口时,我想滚动到该选中的行。我曾尝试在viewDidAppear中执行scrollToRowAtIndexPath:atScrollPosition:animated :,但我发现在对cellForRowAtIndexPath进行任何调用之前均已调用viewDidAppear,并且不会滚动到选定的行

- (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/

10-12 03:41