【问题标题】:universal ios app iPad and iPhone architecture通用 ios 应用 iPad 和 iPhone 架构
【发布时间】:2016-02-04 22:42:46
【问题描述】:

我正在创建一个通用的 iOS 应用程序。 在大多数屏幕中,我对它们中的每一个都有不同的 UI。 大约有15个屏幕。 我来自 Android 并试图为此找到最佳解决方案。

  1. 在 iPhone 上我使用纵向模式。
  2. 在 iPad 上我使用横向模式。
  3. 我使用约束/自动布局。
  4. 有些视图有 nib,有些在代码中。
  5. 正因为如此,每个人的逻辑都有些不同。
  6. iPad 有 2 个菜单,您可以从上到下和从左到右滑动。
  7. iPhone 没有可拖动的菜单。
  8. 两者都对服务器使用相同的 Api 调用。

我看了一下堆栈溢出,得到了一些方法:

我应该使用 2 个不同的类和 2 个笔尖吗? 或者可能是 1 类有大量的 if else? 使用不同的目标?

其中之一是最好的方法吗?还有其他方法吗?

different targets

same class with if/else

IPAD::

iPhone::

【问题讨论】:

    标签: ios iphone ipad


    【解决方案1】:

    当我需要设计一个通用应用程序时,我会查看我认为需要支持的界面并尝试:

    1. 自动布局约束可以处理不同的布局吗?如果这么好,我只需要一个视图。
    2. 如果视图明显不同,我可以为视图控制器定义一个通用的 IBOutlet/Action 接口吗?如果是这样,我可以使用一个视图控制器(不包含条件分支)来支持在多个 nib 中定义的视图。
    3. 如果视图结构完全不同或呈现的视图控制器差异很大(例如拆分视图控制器),那么我可能需要多个视图控制器,每个视图控制器都有自己的视图/nib,但这些控制器应该尽可能薄并共享一组通用模型、数据源、网络服务和其他业务逻辑。

    【讨论】:

    • 考虑到 SwiftUI 的上述几点,今天有什么最新方法吗?
    猜你喜欢
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多