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

时间:2014-07-31 14:45:00

标签: ios objective-c xml feed data-import

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

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

我在考虑导入XML Feed(没有经验), 比如

<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必须有多长时间,并且不必在每次添加或删除伙伴时调整它。它可能比整个视图控制器更清晰。

2 个答案:

答案 0 :(得分:1)

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

  1. 保存包含此各种静态信息的文档,以便在应用启动之间保持不变,

  2. 从该文档加载以显示已保存的信息,

  3. 使用最新版本的某个远程服务器(?)使该文档保持最新,可能是XML格式。

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

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

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

答案 1 :(得分:1)

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

  1. 使用XML
  2. NSXMParser文件中读取数据
  3. UICollectionView
  4. 显示数据

    XML部分非常简单。互联网上有许多教程可以解决这个问题。例如这一个:

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

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

    更多阅读: