如何将静态信息(包括图像)动态导入ViewController

问题描述 投票:1回答:2

我想知道是否有可能导入静态信息,在我的情况下是动态的UIViewControlller中的每个项目的图像,标题和简短描述?

我(试图)创建一个应用程序,对于我正在处理的当前UIViewController,在列表视图中显示公司的合作伙伴。它们中的每一个都显示为一个项目,包含一个图像(徽标),公司名称的下方和下方是关于公司的一段信息。

我想的是像导入XML饲料(没有经验),比如

<object>
    <img src="/images/logo1.png">
    <title="Lorem ipsum>
    <description="lalalalalalalala"
</object>

<object>
    <img src="/images/logo2.png">
    <title="Lorem second one>
    <description="lalalalalalalala"
</object>

像这样的样机

通过简单地导入这样的东西,我不必构成整个页面,计算UIScrollView必须有多长时间,并且不必在每次添加或删除伙伴时调整它。它可能比整个视图控制器更清晰。

ios objective-c xml feed data-import
2个回答
1
投票

您必须将任务划分为更小的步骤。

  1. 使用XMLNSXMParser文件中读取数据。
  2. UICollectionView中显示数据。

XML部分很容易。互联网上有许多教程可以解决这个问题。例如这一个:

第二步可能更复杂,具体取决于您希望实现的布局类型。如果它是标准流布局,则实现将非常简单。同样,有很多关于设置UICollectionView的教程。例:

或者,您可以使用UITableView来显示您的数据。在这种情况下,实现将比UICollectionView更简单。

更多阅读:


1
投票

取决于XML Feed /文档的来源。如果您只是手动创建文档,并将其与每个版本的应用一起发送,那么您需要担心的是从中获取信息;看看this tutorial,它描述了一些信息获取库。有关从文件加载图像的信息,请查看UIImage。如果你的意思是想要从某种遥控器获取信息,那么你似乎必须完成三件事:

  1. 保存包含此各种静态信息的文档,以便在应用程序启动之间保持不变,
  2. 从该文档加载以显示已保存的信息,以及
  3. 使用最新版本的某个远程服务器(?)保持此文档是最新的,可能是XML格式。

首先,让我们假设在您的应用程序内部,您将要存储的数据存储为某种NSObject。查看this tutorial如何使用iPhone应用程序保存文档。它相当清楚地解释了如何采用类似数组或字典(OBJC对象)的东西并存储它。最后,因为您的应用是沙盒,您可能不需要担心它的存储格式。每当您的应用程序启动并确定它具有当前信息时,它所需要做的就是从该存档对象加载并且您很高兴。如果您对在UIView本身中显示信息感到困惑,请参阅Apple's documentation

你可能想要一个单独的类来处理保持数据更新的问题。这取决于您的服务器的实现。例如,您的类可以查询服务器的信息,使用哈希确定是否需要获取新数据,如果需要,请下拉新数据;使用NSXMLParser链接到上面以解析数据,然后用上面的方法保存。

编辑:关于你每次加载时必须重新设计UIViewController的担心,看看自动布局。你基本上可以为你的控制器创建一个nib文件,告诉它一切将如何与其他一切相关,然后只是为所有的字段和pow分配值(即图像和字符串),你有一个一致的设计。

© www.soinside.com 2019 - 2024. All rights reserved.