UITableView 滚动跳转

Posted

技术标签:

【中文标题】UITableView 滚动跳转【英文标题】:UITableView scroll jumps 【发布时间】:2017-11-20 19:52:34 【问题描述】:

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

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

- (void)viewWillDisappear:(BOOL)animated 

[super viewWillDisappear:animated];

self.tableView.scrollEnabled = NO;

我试图找到设置偏移量的原因,并且我了解到 setContentOffset 它是从以下位置调用的:

UIScrollViewInternal _adjustContentOffsetIfNecessary.

【问题讨论】:

【参考方案1】:

我找到的关于建议设置的这个主题的所有答案:

self.automaticallyAdjustsScrollViewInsets = NO;

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

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

奇怪的跳跃停止了。

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

[self.view sendSubviewToBack:self.tableView];

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

【讨论】:

【参考方案2】:

也许你需要在你的 UITableView 中添加如下代码设置

self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;

【讨论】:

它关于内容偏移不是插入

以上是关于UITableView 滚动跳转的主要内容,如果未能解决你的问题,请参考以下文章

当 UITableView 加载并在滚动后得到修复时,UILabel 向左移动

UITableView beginUpdates/endUpdates 同时滚动使滚动跳转

使用 nib 自定义单元格和自动布局滚动跳转(ios 8 swift - UITableview)

在tableview中加载异步图像,它们在每次滚动时消失

UITableView 的自定义滚动条

UITableView 使用 UIPIckerView 滚动到特定部分?