2012-04-30 46 views
1

我有一组图像,视频和.gif图像显示在UIWebView中,当用户滚动到scree底部并且到达结尾时动态呈现当前UIScrollView偏移量。从网络上下载项目时,我可以显示一个活动指示符,使用户体验更加流畅和美观,但是当我将所有数据缓存并从缓存中检索时,当所有项目呈现相同时,我都会产生相当烦人的滞后时间(每次装载操作5项)。我的问题是:是否有可能以某种方式从UIScrollView上移除显示项目时的延迟?如何在主线程上渲染项目时显示活动指示符?具体来说,当用户滚动到底部时会发生延迟,滚动会冻结,所有项目都会呈现,并且滚动会继续与底部相同的用户拖动到的底部。使用动态渲染项目的UIScrollView消除滚动滞后

P.S.我不能使用UITableView,所以请不要使用它来代替滚动视图。

回答

1

你应该考虑使用NINetworkImageView从雨云项目:https://github.com/jverkoey/nimbus

它运作良好,在您的情况的原因是因为它的操作在不同的线程所获取的图像。它可以进行裁剪和调整大小等功能,并在主线程中为您提供最终结果。

如需更完整的示例,请在此处查看我的答案:https://stackoverflow.com/a/10361005/434841获取类似问题。

+0

我正在单独的线程下载图像。问题不在于如何在后台线程上下载图像,而是关于如何在同时滚动和渲染项目时从UIScrollView中移除延迟,以及这是否可能。无论如何,请多谢 – Eugene

+0

解密问题有点难,常见错误之一是使用大图片并让UIImageView呈现更小的图像。请张贴您的代码,以便我可以看一看。您是否尝试在该场景中使用Nimbus? –

+0

你好Yosi,谢谢你的关心。我正在下载图像,将它们调整为较小的图像并使用调整后的版本,因此这里没有问题。我的问题是UI冻结了,我通过绘制一个活动指示器并要求用户等待...解决了问题。我仍然会将您的答案标记为正确,谢谢 – Eugene