我要创建一个同时支持 iPhone 和 iPad 的应用程序。在继续之前,我只想了解有关这两个应用程序开发的最佳实践。
以下是我知道的一些要点:
- 假设我有一个显示 N 条记录的 TableView ,并将其表示为 PAGE-1。当用户点击单元格时,它将加载 PAGE-2 以显示有关点击记录的详细信息。这是每个应用程序中更常见的场景。
- 对于 iPad,情况并非如此。我可以在同一页面中显示 PAGE-1 和 PAGE-2。(考虑横向模式)
- 因此,iPhone 的 PAGE-1 将显示在 iPad 的左侧面板中,而 iPhone 的 PAGE-2 将显示在 iPad 的右侧面板中。
结论:
- 因此,我可以为 iPhone 和 iPad 创建一个通用类。这将处理 PAGE-1 在 iPhone 和 iPad 上的通用功能。
- 针对 iPhone 和 iPad 的设备特定功能可能会分为不同的类。
- 除此之外,可以为 iPhone 和 iPad 编写通用的网络相关方法、解析器、实用方法、类别、自定义 Controller 。
- iPad 的唯一附加组件是,它应该有一个 Controller 来容纳和处理 PAGE-1 和 PAGE-2。这可确保 PAGE-1 不包含 PAGE-2,并且它们都像 iPhone 的 PAGE-1 和 PAGE-2 一样独立。
引用下面的附图,可以清楚地展示。
问题:
- 这种方法是否正确?
- 我真的不知道 iPad 的“容器” Controller 。我需要它吗?或者是否有任何其他更好的建议来有效地对事物进行分组?
这可能是一个基本问题,但我需要澄清以便更好地进行代码练习。
谢谢
最佳答案
这听起来不像您需要特定的页面 1 和 2 子类,但这取决于每个设备上页面之间的确切差异。 Collection View 可能更适合您的需求,因此您只需设置项目宽度,布局就会在适当的地方将您的内容组织到列中。
这听起来更像是您需要的是顶层的 2 个不同的容器类,它们决定如何显示页面,或者更具体地说,要显示多少页面以及它们在屏幕上的位置。对于 iPhone 这真的很简单,对于 iPad 则稍微复杂一些(主要是由于旋转处理)。
另请注意,如果您在 Xcode 中创建一个新的主从项目并要求它支持 iPhone 和 iPad,您将看到针对这种情况使用了一个可选的 Split View Controller 。通过让应用委托(delegate)决定是否使用“特殊”容器(对于 iPad),这绕过了对 2 个容器类的需要。
关于ios - 一起开发 iphone 和 ipad 应用程序时的最佳做法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32181029/