iPad,类似 App Store 的界面,管理项目的建议
Posted
技术标签:
【中文标题】iPad,类似 App Store 的界面,管理项目的建议【英文标题】:iPad, App Store like interface, suggestions to manage items 【发布时间】:2011-10-27 21:47:35 【问题描述】:我正在尝试创建一个用户界面,就像在 App Store 应用程序(iPad 设备)中呈现的那样。这是一种可滚动的网格(水平滚动),其中每个元素都包含在应用程序商店中可以出售的应用程序的概述中(每个元素都包含图像、标题等)。我的目标是一样的。我有兴趣开发一个 UIScrollView 来排列和显示元素。每个 UI 元素都包含一个图像和一个描述。
从之前的考虑出发,我开发了一个 ItemViewController.h/.m 和相关的 .xib (ItemView.xib)。每个元素都可以响应点击等动作。 ItemViewController.m 管理这个点击,因为它是它的文件所有者。使用 MainViewController.h/.m 类中的 initWithNibNamad 方法创建一个元素。此类包含 UIScrollView。然后,将与该项目关联的视图添加到 UIScrollView。
既然可以有多个项目,你能给我一些建议来管理 MainViewController 中的 ItemViewController 项目吗?我是否必须将每个对 ItemViewController 的引用存储在字典中(例如)?一开始我还考虑将 MainViewController 设置为 ItemView.xib 文件的所有者,但我认为管理项目的问题可能仍然存在。
提前谢谢你。我希望一切都清楚。
【问题讨论】:
【参考方案1】:在我看来,您的结构是倒退的。您不应该将界面呈现的项目存储在控制器中。您应该有一个模型,其中包含您的控制器用来构建界面视图的项目。
因此,您有一个包含产品列表及其相关元数据的模型。您的控制器查询该列表,为其中的每个项目构造一个视图,并将这些视图添加到应用程序的视图层次结构中(可能在滚动视图中,就像您建议的那样)。与这些视图的任何交互都会回调控制器,然后控制器会更改模型。对模型的任何更改都应该发布一个控制器监听的通知,以便它知道适当地更新(或只是重新加载)其呈现的视图。
请注意,在这种安排中,模型中的一项可以在界面中多次表示。假设您要显示标记为“Giant”的项目列表和标记为“Green”的项目列表。如果您有一个“Jolly Green Giant”产品,它会出现在两个列表中。但是因为模型中的同一个项目是两者的来源,所以对一个项目的任何更改都会自动反映在另一个项目上。这通常是所需的行为(如果您从“Green”列表中删除了“Jolly Green Giant”,您还希望将其从“Giant”列表中删除)。
有关更多信息,请阅读模型视图控制器 (MVC) 模式。
【讨论】:
【参考方案2】:看看AQGridView - 它应该能够满足您的需求。
【讨论】:
感谢您的回复。我可以使用 AQGridView 创建与我之前描述的相同的组件吗?以上是关于iPad,类似 App Store 的界面,管理项目的建议的主要内容,如果未能解决你的问题,请参考以下文章
仅更新 App Store 上的 iPad 应用程序 [重复]
在没有 App Store 的情况下将 App 分发到多个 iPad
iPad App Store 链接未显示 iPhone 应用程序