我一直在尝试从服务器显示大图像,但我必须逐步显示它。
我使用了 UIView 的子类,并在其中使用了 UIImage
对象,其中我使用了 NSURLConnection 及其委托(delegate)方法,我还使用了
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;
其中我附加数据并将其转换为 UIImage
对象,并使用 UIImage
的 drawInRect:
方法绘制矩形。
一切工作正常,但问题是,当在上下文中绘制图像时,我无法单击屏幕上的其他任何位置,直到将整个图像绘制到屏幕上。
是否有任何好的解决方案,即使图像正在屏幕上绘制,我也可以单击其他任何地方?
任何帮助将不胜感激。
编辑:
在 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/