2

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

4

3 回答 3

1

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

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 的控制较少,则需要使用 NSURLRequest 之类的东西创建请求,使用 NSURLConnection 之类的东西获取数据,并从响应中解析出图像列表以创建图像数组。

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

2:显示图片列表

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

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

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

于 2012-04-30T17:20:22.777 回答
0

我会设置一个网络服务来抓取这个“列表”(假设你实际上没有对服务器的内部访问)。我建议使用 libcurl 和 PHP 来获得该列表。

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

然后以 JSON 格式输出列表并使用 iOS 可用的库对其进行解析:

iOS 中的原生 JSON 支持?

(可能需要看看最近在 JSON 解析方面取得了哪些进展,我似乎记得关于这个特定主题的一些事情在最近的历史中经历了变化)。

关于 libcurl 和 PHP 的官方文档:

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

(取自上述堆栈溢出问题):

iOS 5 的更新答案:

JSON 支持现在是 iOS 原生的 NSJSONSerialization,但在性能方面,它与 JSONKit 相比就相形见绌了。

我建议您使用 JSONKit 而不是 NSJSONSerialization。

于 2012-04-30T16:35:05.467 回答
0

在谷歌浏览器中:

  1. 导航到您要查看所有图像的页面
  2. 按 f12
  3. 选择“网络”选项卡
  4. 滚动浏览所有请求图像,这些是页面呈现的顺序。

还:

  1. 选择“应用程序”选项卡
  2. 在图像下,浏览图像列表
于 2021-12-10T20:29:23.160 回答