UITableView 滚动跳转

UITableView scroll jumps

最近,当新的 ViewController 被推送时,我的应用程序开始滚动跳转:

我尝试了不同的答案,但似乎没有任何效果。我了解到我的应用在设置 CGPointZero 后将负偏移量设置为:

- (void)viewWillDisappear:(BOOL)animated {

[super viewWillDisappear:animated];

self.tableView.scrollEnabled = NO;

}

我试图找到设置偏移量的原因,我了解到调用 setContentOffset 的来源:

UIScrollViewInternal _adjustContentOffsetIfNecessary.

我在建议设置的主题中找到的所有答案:

self.automaticallyAdjustsScrollViewInsets = NO;

它不起作用,让我发疯。比我遇到 answer 建议视图层次结构作为一些偏移问题的原因。

我很绝望,所以我尝试将此调试按钮从层次结构的顶部移开,如下所示:

奇怪的跳跃停止了。

后来我了解到您的 tableView 应该始终位于视图层次结构的开头,这样 autoadjustscrollinsets 功能才能正常工作,我添加了:

[self.view sendSubviewToBack:self.tableView];

只是为了确保它始终是因为苹果不保证它不会 fiddle 使用 .xibs 层次结构。

也许您需要将以下代码设置添加到您的 UITableView

self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;