iphone - UIImage 从服务器逐步显示

标签 iphone uiimageview uiimage http-headers nsurlconnection

我一直在尝试从服务器显示大图像,但我必须逐步显示它。

我使用了 UIView 的子类,并在其中使用了 UIImage 对象,其中我使用了 NSURLConnection 及其委托(delegate)方法,我还使用了

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;

其中我附加数据并将其转换为 UIImage 对象,并使用 UIImagedrawInRect: 方法绘制矩形。

一切工作正常,但问题是,当在上下文中绘制图像时,我无法单击屏幕上的其他任何位置,直到将整个图像绘制到屏幕上。

是否有任何好的解决方案,即使图像正在屏幕上绘制,我也可以单击其他任何地方?

任何帮助将不胜感激。

编辑: 在 didReceiveData 中是否有任何有效的方法来逐步绘制图像模糊?所以drawInRect不会花费太多时间来绘制。或者,如果有人有自定义 drawRect 方法,可以在 didReceiveData 中接收到数据时有效地逐步显示图像。

最佳答案

我使用 NYXImagesKit 进行类似的操作,下载图像,同时不阻塞主线程并逐步显示图像。我写了一个非常快速和肮脏的例子来说明基本工作原理。我将图像加载到 UITableview 中以表明它不会阻塞用户界面(主线程)。您可以在加载图像时滚动桌面 View 。不要忘记添加正确的框架,有几个。这是 Github 上该项目的链接:

https://github.com/HubertK/ProgressiveImageDownload

它真的很容易使用,创建一个 NYXProgressiveImageView 对象,设置 URL,当你调用时它会为你完成所有工作:

loadImageAtURL:

它是 UIImageView 的子类,就像魔术一样!这是开发者网站的链接:

http://www.cocoaintheshell.com/2012/01/nyximageskit-class-nyxprogressiveimageview/

关于iphone - UIImage 从服务器逐步显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9478262/

相关文章:

ios - 我在 Xcode 6 中使用多个 UIImageView 时遇到问题

iphone - 发送到实例的无法识别的选择器

iphone - UITabBarController 的横向方向?

ios - UIImages NSURL 和线程

iOS 无法加载图像文件以编程方式从 View Controller 查看

ios - UIImage 通过选择另一个 UIImage 的一部分

ios - UIImage 显示为 nil

php - 如何通过php、swift将服务器上的图像显示到iOS设备

iphone - 奇怪的 LLVM 警告 : no previous prototype for function for

iphone - Apple 推送通知增强格式