【问题标题】:iOS universal storyboard iPhone iPadiOS 通用故事板 iPhone iPad
【发布时间】:2015-07-02 13:10:28
【问题描述】:

假设我有一个应用程序,它在 iPhone 上显示控制器 A,在 iPad 上显示控制器 B,您可以将其视为 UITableView(适用于 iPhone)和 UICollectionView( iPad)例如。 两个控制器具有相同的模型,也可以具有可以共享共享内容的相同基类。

现在在通用故事板之前,我有 2 个单独的故事板,一个用于 iPhone,一个用于 iPad,在运行时我根据设备检查并加载正确的故事板。

问题是在通用情节提要中正确的做法是什么?

选项 1 - 使用一个具有 tableview 和 collection view 的故事板,并且只为它们使用一个控制器并隐藏不必要的控制器。

选项 2 - 在这种情况下不要使用通用。

如果 iPhone 和 iPad 具有相同的 UI,我是否需要使用通用情节提要?

【问题讨论】:

  • 从 iOS 8 开始,您应该通过使用尺寸类和自适应 UI 来解决这个问题。
  • 我看不到尺寸等级和自适应 UI 之间的联系。

标签: ios storyboard universal-storyboard


【解决方案1】:

如果 iPhone 和 iPad 的整个 GUI 不同,则应该使用两个不同的故事板。

当您的 GUI 具有相同的控件并且您只想根据屏幕框架调整控件的大小时,Size 类和通用情节提要非常有用。

如果这只是 iPhone 和 iPad 的控件不同的一个案例,那么做一件事:-

使用通用故事板并为 iPhone 和 iPad 创建两个 ViewController,例如:- IphoneViewController 和 IpadViewController,并在运行时检查您的设备是 iPad 还是 iPhone,并决定需要加载/推送/呈现哪个控制器。

【讨论】:

  • 我看到在通用情节提要中,我在视图上有“安装”复选框。那么在表格视图上检查 iphone 的安装并取消选中集合视图是否正确,反之亦然,这样我就可以使用一个情节提要视图控制器了吗?
【解决方案2】:

你的 iPhone 应用中不需要有 UITableView,UICollectionView 基本上是一样的。

只需制作两种 UICollectionViewCells,您可以使一种看起来像一个基本的表格视图单元格,并且您可以在正确的设备上使用它们。您可能还需要第二个 UICollectionViewFlowLayout。

【讨论】:

  • 举个例子,我必须为 iphone 使用 uitableview,为 ipad 使用 uicollectionView
  • 如果出于某种原因,您必须为 iPhone 使用 tableviews 并为 iPads 使用集合视图,我会将它们保存在单独的故事板中 b/c 没有一种好的、干净的方式来做你想做的事想。但是,您可以将集合视图(包括外观和感觉)视为表格视图,所以在我看来,您只是按照自己的方式为自己创造更多的工作。处理任何和所有屏幕尺寸、方向等都会更容易。
  • 我认为然后使用两个 vc 而不是两个故事板,因为在一个故事板中我们可以为任何类型的设备制作视图以及使用自动布局的方向。
【解决方案3】:

我认为您将为此使用一个故事板并在其中创建两个单独的 VC 类,并根据您的设备类型在其中推送正确的故事板对象。只为一个视图使用两个故事板并不是一个好主意,它只会浪费内存并增加您的工作量

【讨论】:

    猜你喜欢
    • 2013-11-16
    • 2014-11-22
    • 2015-09-20
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 2017-05-07
    • 2014-09-07
    相关资源
    最近更新 更多