【问题标题】:UITablewView stops renderings during scrollingUITableView 在滚动期间停止渲染
【发布时间】:2012-02-17 12:19:21
【问题描述】:

简介

目前我有一个 UITableView,其中填充了自定义单元格,显示当前上传到服务器的文件的上传进度。上传过程只是使用 NSURLConnection 的标准异步方法在后台异步运行的 NSURLConnection 对象。

问题是,在滚动过程中,UITableView 或者我想 UITableview 的 UIScrollView 会阻塞整个主线程,这会导致诸如文件上传过程等重要信息直到UIScrollView 处于静止状态。

研究

现在我确实碰到了我认为与我在这篇文章中的完全相同的问题:类似问题

所以看起来整个主线程都被阻塞了。我还成功地添加了上面帖子中的计时器,即使在滚动过程中也会被调用。但是......不幸的是它并没有真正解决我的情况。

问题仍然是 NSURLConnection 对象被阻塞,这意味着 NSURLConnection 删除方法:didSendBodyData

仍然没有被调用,这是我获得写入服务器的新字节数的地方等等,所以我根本无法接收数据。

有没有办法解决这个问题?我是否必须创建某种自定义 UIScrollView 或类似的东西来绕过限制,比如创建自己的滚动机制?

【问题讨论】:

    标签: ios uitableview uiscrollview rendering


    【解决方案1】:

    您是否考虑过将NSURLConnection 代码移动到后台线程上运行?这应该允许它在用户滚动时运行。

    您的UITableViewUIScrollView(您提到过),这意味着您可以针对它注册UIScrollViewDelegate。如果你实现了scrollViewDidScroll:,你可以有效地让你的主线程轮询,看看你是否有来自NSURLConnection的结果。

    【讨论】:

    • 这听起来是个好主意 :) 绝对是我会研究的!谢谢! :)
    猜你喜欢
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    • 2018-07-12
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    相关资源
    最近更新 更多