2011-12-29 48 views
0

当我尝试使用NSURL获取UITableView中的图像
UIImage image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://mysite.com/mobile/abc.jpg]]];
我的应用程序冻结,直到图像加载。另外,当我滚动表格时,它再次从服务器获取图像,并滚动一段时间。
我知道这是因为从服务器同步下载图像。
是否有任何解决方案,以便我可以从服务器异步下载映像并将其存储在本地或缓存中,这样当表滚动时它不会再从服务器获取映像。从iPhone中的服务器UITableView异步显示图像

感谢

回答

2

请通过enormego查看EGOImageLoading。像UIImage一样工作(并缓存图像),但可以让您异步加载HTTP。

+0

感谢Keller的回复。我明天会检查这个,但从文档看它会做我的工作。 – 2011-12-29 19:24:05

+0

谢谢凯勒,你太棒了。 – 2011-12-30 11:52:00

+0

没问题,狂欢! – Keller 2011-12-31 23:42:33

0

您可以创建自己的类,它充分利用了NSURLConnection和它的各种异步方法来在后台加载您的图像,然后有一个回调在单元格中显示。

但是,有一些优秀的库正是你所描述的。 HJCache是我为此唯一用途而推荐的一款

+0

谢谢苏哈尔给你快速回复。我会查找HJCache库。如果您为我提供一些代码,将其与表格视图和缓存图片集成在一起,以便滚动表格更平滑,这会非常有帮助。 – 2011-12-29 18:10:39

+0

网页上有标题为“如何使用HJCache”的部分介绍了您需要为其工作的所有内容。还有一个演示应用程序,它在Github页面上运行得非常顺利:https://github.com/markofjohnson/HJCache – 2011-12-29 18:13:06