ios - 一起开发 iphone 和 ipad 应用程序时的最佳做法是什么?

标签 ios iphone ipad architecture

我要创建一个同时支持 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 一样独立。

引用下面的附图,可以清楚地展示。

enter image description here

问题:

  • 这种方法是否正确?
  • 我真的不知道 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/

相关文章:

ios - 从两个类访问同一段代码

ios - iPAD 日历控制,包含月、日和周

ios - React Native iPad 分屏组件

android - iOS 和 Android 中的 TableView

ios - 添加 iOS Charts Framework 后无法构建 Xcode 项目(未找到 Info.plist)

ios - 在自己的应用程序中打开来自其他应用程序的文件

iphone - 为 UITableView 过滤内容

iphone - 在 Storyboard 中使用自定义 Push Segue

ios - 如何在 Firebase 中创建自动递增键?

iphone - UITableViewCell 如何知道自己的indexPath?