objective-c - 如何在第一次打开时滚动到 UITableView 中的一行

标签 objective-c ios cocoa-touch uitableview

我有一个 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/

相关文章:

ios - 志愿者匹配 API Objective-C

objective-c - NSURLRequest/NSURLConnection ios 5.0 v/s 早期版本

android - 是否可以在 NativeScript 中使用 Cordova 插件?

ios - 如何在 ViewController 顶部设置标题

ios - Xcode - 如何修复 'NSUnknownKeyException' ,原因 : … this class is not key value coding-compliant for the key X"error?

iphone - NSPredicate 使用特殊字符过滤

iphone - UIManagedDocument 示例/教程

ios - Swift 动态库是否向后兼容较旧的 swift 版本项目

ios - NSFetchedResultsController 对空结果的自定义行为

ios - GCD串行队列好像没有串行执行