0

我有以下代码来选择并滚动到 UITableView 中的给定行:

-(void) viewWillAppear:(BOOL)inAnimated
{
    NSIndexPath* me = [NSIndexPath indexPathForRow:self.someIndex inSection:0];
    [self.tableView selectRowAtIndexPath:me animated:NO scrollPosition:UITableViewScrollPositionTop];
}

这在 IOS 6 中运行良好,但在 IOS 7 上,UITableView 位于 UITabBar 下方。

如何使此代码在 IOS 7 上运行并确保该行确实可见?

4

2 回答 2

0

我猜你需要滚动到一个点加上 UITab 栏的高度。您可以尝试更改偏移量。(我还没试过这个)

[tableView setContentOffset:CGPointMake(0,tabBar.bounds.size.height) animated:NO];
[tableView setContentInset:UIEdgeInsetsZero];

或者也许是:

[tableView setContentInset:UIEdgeInsetsMake(tabBar.bounds.size.height, 0, 0, 0)];
于 2013-10-23T08:41:35.973 回答
0

不要使用NSIndexPath, 而不是NSIndexPath使用行号。将行的索引保存在某处并使用它,在 iOS 7 中,他们改变了索引路径的结构。我有类似的问题,并通过保存行而不是NSIndexPath

于 2013-10-23T08:22:13.330 回答