在 UITableViewController 的 refreshControl 上缓慢向下滑动刷新会导致视图跳下

Posted

技术标签:

【中文标题】在 UITableViewController 的 refreshControl 上缓慢向下滑动刷新会导致视图跳下【英文标题】:Slowly swiping down to refresh on refreshControl of UITableViewController causes view to jump down 【发布时间】:2015-09-12 11:11:46 【问题描述】:

我曾经在 UIViewController 中有一个 UITableView。我会在 UITableView 上放置一个 UIRefreshControl,在最后一次向下滑动刷新时,UITableView 会快速向下跳。

所有答案都表达了相同的意思:未记录/意外的行为(能够将 UIRefreshControl 与 UITableView 一起使用)会产生这样的结果。为了缓解这种情况,我使用 ContainerView 将 UITableViewController 嵌入到 UIViewController 中。

几乎解决了这个问题,但是......如果我向下滑动的速度足够慢,问题仍然存在。

有什么办法可以缓解这种情况,还是我不得不忍受它?

视频:http://streamable.com/8suq

请注意,前几次我向下滑动看起来非常好,因为我的速度足够快,但在视频快结束时,我真的放慢了速度,你注意到有问题的跳跃。

【问题讨论】:

***.com/questions/31011734/… 这很好用,但我正在寻找更好的方法。 你的视频链接被屏蔽了,所以改一下 【参考方案1】:

我注意到您在该视频中有一个鼠标光标。您无法判断模拟器中动画的图形性能,它与实际设备上的性能不同。

在设备上,您将获得更好的性能和更好的每秒帧数。我最近在学习开发游戏时使用 SpriteKit 时发现这一点非常明显。

我之前只在 UITableViewController 中使用过几次 UIRefreshControl,之前没有注意到任何重大问题。从那以后,我一直在使用其他库,例如 https://github.com/samvermette/SVPullToRefresh。

在物理设备上试用您的应用,同时我将尝试复制您的问题并将我的发现添加到此处

【讨论】:

我实际上是在一台设备上遇到了这个,并使用了模拟器,所以我可以记录下它碰巧放在这里。我已经修复了它并学会了如何记录我的实际屏幕,所以我不再使用模拟器。这是很久以前的事了,所以我不记得我的修复了。 @David,如果你修复了它,你能分享你的知识吗?似乎其他人也有这个问题(从添加到这个问题的赏金来看)

以上是关于在 UITableViewController 的 refreshControl 上缓慢向下滑动刷新会导致视图跳下的主要内容,如果未能解决你的问题,请参考以下文章

在 UITableViewController 中没有调用 cellForRowAtIndex?

我想通过在 Swift 中以编程方式将 UINavigationController 与 UITableViewController 嵌入 UITableViewController 这是 UITab

在导航栏中使用 UITableViewController

在 UINavigationController 中显示 UITableViewController

在 UIPopoverController 中显示 UItableViewController

在 UITableViewController 中设置导航栏颜色。