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