通用 ios 应用 iPad 和 iPhone 架构
Posted
技术标签:
【中文标题】通用 ios 应用 iPad 和 iPhone 架构【英文标题】:universal ios app iPad and iPhone architecture 【发布时间】:2016-02-04 22:42:46 【问题描述】:我正在创建一个通用的 ios 应用程序。 在大多数屏幕中,我对它们中的每一个都有不同的 UI。 大约有15个屏幕。 我来自 android 并试图为此找到最佳解决方案。
-
在 iPhone 上我使用纵向模式。
在 iPad 上我使用横向模式。
我使用约束/自动布局。
有些视图有 nib,有些在代码中。
正因为如此,每个人的逻辑都有些不同。
iPad 有 2 个菜单,您可以从上到下和从左到右滑动。
iPhone 没有可拖动的菜单。
两者都对服务器使用相同的 Api 调用。
我看了一下堆栈溢出,得到了一些方法:
我应该使用 2 个不同的类和 2 个笔尖吗? 或者可能是 1 类有大量的 if else? 使用不同的目标?
其中之一是最好的方法吗?还有其他方法吗?
different targets
same class with if/else
IPAD::
iPhone::
【问题讨论】:
【参考方案1】:当我需要设计一个通用应用程序时,我会查看我认为需要支持的界面并尝试:
-
自动布局约束可以处理不同的布局吗?如果这么好,我只需要一个视图。
如果视图明显不同,我可以为视图控制器定义一个通用的 IBOutlet/Action 接口吗?如果是这样,我可以使用一个视图控制器(不包含条件分支)来支持在多个 nib 中定义的视图。
如果视图结构完全不同或呈现的视图控制器差异很大(例如拆分视图控制器),那么我可能需要多个视图控制器,每个视图控制器都有自己的视图/nib,但这些控制器应该尽可能薄并共享一组通用模型、数据源、网络服务和其他业务逻辑。
【讨论】:
考虑到 SwiftUI 的上述几点,今天有什么最新方法吗?以上是关于通用 ios 应用 iPad 和 iPhone 架构的主要内容,如果未能解决你的问题,请参考以下文章
如何支持适用于 iPhone、iPad 和 iPad Mini 的 iOS 应用程序
对通用 OpenGL ES 应用程序(iPhone 和 iPad)的建议?
IOS(将通用更改为 ipad)我的错误我已经为 iphone 上传构建现在我们希望在新版本中这个应用程序仅适用于 ipad