从网站获取图像列表并显示它

我正在创build一个iOS应用程序,用于获取网站上显示的图像列表,并将它们显示为屏幕上的图像(类似于来自照片库的图像显示)。 我可以从UIImageView中的URL显示单个图像,但是从网站显示图像的完整列表时,我是无言的。 任何帮助正确的方向或任何有用的教程将不胜感激。

这个问题有两个部分。 我会给你一个快速的回应。

1:下载图像列表

这可以像使用+ arrayWithContentsOfURL一样简单:如果你完全控制你的网站。 请确保分发下载以避免阻塞UI线程。

NSURL *URL = self.URLOfImages; dispatch_queue_t dispatch = dispatch_queue_create("fetch.images", NULL); dispatch_async(dispatch, ^{ NSArray *images = [NSArray arrayWithContentsOfURL:URL]; dispatch_async(dispatch_get_main_queue(), ^{ self.images = images; }); }); dispatch_release(dispatch); 

注意:URL必须返回NSArray期望的确切格式,self.images必须通知视图它需要重新加载,即。 [self.tableView reloadData]

如果您对URL的控制较less,则需要使用类似NSURLRequest的方式创build请求,使用类似NSURLConnection的方式获取数据,并从响应中parsing出图像列表以创build图像数组。

在更复杂的情况下,将涉及分页。 这将只需要下载一些列表,然后需要更多的图像请求更多的图像。

2:显示图像列表

这可以像使用具有使用UITableViewCellStyleDefault样式的UITableViewCells的UITableView一样简单,然后在每个单元格中设置imageView属性。

要更好地查看可以编写的图像,请使用从UITableViewCell中分类的自定义表格视图单元格。 这将允许您使用图像的自定义位置,并设置图像的大小,以任何你想要的。

在一个更复杂的senario中,你可以创build你自己的自定义视图,其中包含一个UIScrollView,你可以放置所有的图像。

我会设置一个Web服务,刮擦这个“列表”(假设你实际上没有内部访问服务器)。 我build议使用libcurl和PHP来获取列表。

http://www.sitepoint.com/own-web-service-php-xml-rpc/

然后以JSON格式吐出列表,并使用iOS提供的库进行parsing:

iOS中的原生JSON支持?

(可能需要查看JSONparsing方面最近取得的进展,我似乎记得有关这个特定主题的内容在最近的历史中经历了变化)。

libcurl和PHP官方文档:

http://php.net/manual/en/book.curl.php

(从上面的STACKOVERFLOW问题中获得):

更新iOS 5的答案:

JSON支持现在是NSJSONSerialization的iOS原生支持,但是就性能而言,与JSONKit相比,它是非常糟糕的。

我build议你使用JSONKit而不是NSJSONSerialization。