【问题标题】:How to dynamically import static information, including an image, into an ViewController如何将静态信息(包括图像)动态导入 ViewController
【发布时间】:2014-07-31 14:44:59
【问题描述】:

我想知道是否可以在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 需要多长时间,也不必在每次添加或删除合作伙伴时调整它。它可能比整个视图控制器更清晰。

【问题讨论】:

  • 这是一项艰巨的任务。你说的一切都是可能的,但有很多部分。我建议阅读 UITableView 和 NSXMLParser。这些是您的视图所需的两个主要构建块。
  • 我已经期待这样的评论了。我要补充一点,我不是在寻找简单的表格视图。我添加了我想要复制的东西的模型图像。这有什么区别吗?
  • "Simple" Tableviews 可以非常健壮,并且它们是延迟加载的,这似乎非常适合您的情况。您的所有数据都可以拆分为具有不同数据的相同形式的对象,这正是 UITableView 的创建目的。我坚持我原来的信息。

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


【解决方案1】:

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

  1. 使用NSXMParser从XML文件中读取数据。
  2. 在UICollectionView 中显示数据。

XML 部分非常简单。互联网上有很多教程涵盖了这一点。比如这个:

第二步可能会更复杂,具体取决于您想要实现的布局类型。如果是标准流程布局,实现会相当简单。同样,有很多关于设置UICollectionView 的教程。示例:

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

更多阅读:

【讨论】:

    【解决方案2】:

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

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

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

    3. 通过一些远程服务器 (?) 使本文档保持最新,最新版本的来源可能是 XML 格式。

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

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

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

    【讨论】:

      猜你喜欢
      • 2010-09-22
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-23
      相关资源
      最近更新 更多