等待用户完成与 UITableView 的交互

Posted

技术标签:

【中文标题】等待用户完成与 UITableView 的交互【英文标题】:Wait for user to finish interacting with UITableView 【发布时间】:2016-03-19 06:37:37 【问题描述】:

我想在其应用中实现 Gmail 的功能。也就是说,它在下拉刷新时在后台获取电子邮件,当数据可用时,它将更新 UITableView。但是,如果用户在更新 UITableView 之前与 UITableView 进行交互,则应用程序会等到用户释放他的触摸然后更新它。如何在 iosandroid 上实现这一点?

【问题讨论】:

我认为你必须对 pull to refresh 进行研究。 我知道 UIRefreshControl。但是我正在谈论的情况是,假设用户正在滚动 uitableview,并且当他/她这样做时,异步任务已经完成了它的任务,现在准备好在主线程上更新 uitableview。但由于用户正在滚动,应用会等到用户完成滚动后再更新。 【参考方案1】:

互联网上有多个教程可以实现这一点。基本上你必须使用UIRefreshControl。查看this 答案或this 教程。

【讨论】:

我知道 UIRefreshControl。但是我正在谈论的情况是,假设用户正在滚动 uitableview,并且当他/她这样做时,异步任务已经完成了它的任务,现在准备好在主线程上更新 uitableview。但由于用户正在滚动,应用会等到用户完成滚动后再更新。 我不明白,所以您希望您的表格视图在滚动时或仅在滚动停止时更新? 我希望它等到滚动或点击停止然后更新。 您可以从UITableViewDelegate 实现optional func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView) 方法并检查它是否获取了新数据,如果是,则将其添加到表中。对于检查,您可以使用bool。后台请求完成后设置,检查上面的方法是否设置。 好的。我想这会奏效。谢谢您的帮助。还有是否可以检查用户是否正在点击 uitableview 或单元格?因为我也想为点击实现相同的功能。即仅在点击结束后更新。

以上是关于等待用户完成与 UITableView 的交互的主要内容,如果未能解决你的问题,请参考以下文章

java DualCustomised Progress Bar(用户无法与UI交互,直到任务完成)

Android 线程交互

推荐系统的UI交互与视觉展示

如何禁用 UITableView 的部分索引的用户交互?

如何修复错误 Wait-Job cmdlet 无法完成工作,因为一个或多个作业被阻止等待用户交互

等待 UITableView 完成插入