【问题标题】:How/whether to make a universal storyboard in Xcode如何/是否在 Xcode 中制作通用故事板
【发布时间】:2014-03-06 00:54:35
【问题描述】:

在 Xcode 中创建故事板文件时,您必须选择它是用于 iPhone 还是 iPad。这意味着应该始终将 iPhone 和 iPad UI 放在单独的故事板中。这是真的吗?

我的应用有多个故事板。虽然 iPhone 和 iPad 之间的 Main.storyboard 文件大不相同,但其他故事板几乎相同。唯一的区别可能是在 iPhone 上的推送与 iPad 上的 popover 的区别,这可以通过编程方式处理。制作两个故事板似乎非常愚蠢和多余。

如果制作一个“通用”故事板,Xcode 中应该选择 iPhone 还是 iPad?有关系吗?

【问题讨论】:

  • 您确实需要分离情节提要,但是您可以非常轻松地将所有对象从一个情节提要复制到另一个情节提要,然后只调整小的差异。您所有的 outlet 和 segue 都将保留在那里,您只需将 outlet 拖到课程中,但这很快。

标签: ios ipad uistoryboard uistoryboardsegue ios-universal-app


【解决方案1】:

从 Xcode 6 开始,我们可以为所有设备创建一个统一的故事板。 欲了解更多信息 - Documentation

iOS 8 让屏幕尺寸和方向的处理变得更加复杂 多才多艺的。比以往任何时候都更容易为 您的应用在 iPad 和 iPhone 上运行良好,调整为 根据需要更改方向和不同的屏幕尺寸。设计应用程序 具有通用界面,然后针对不同大小进行自定义 类。使您的用户界面适应每种形式的优势 因素。您不再需要创建特定的 iPad 故事板; 而是针对适当的尺寸类并调整您的界面 以获得最佳体验。

iOS 8 中有两种尺寸类别:常规和紧凑。一种 常规尺寸类表示大量的屏幕空间,例如 就像在 iPad 上一样,或者是一种普遍采用的范式,它提供了 大量屏幕空间的错觉,例如在屏幕上滚动 苹果手机。每个设备都由一个尺寸等级定义,垂直和 水平。 iPad 尺寸等级显示了本机尺寸等级 平板电脑。有了可用的屏幕空间,iPad 有一个 垂直和水平方向的常规尺寸等级 纵向和横向。

编辑: 仅支持iOS 8(向后兼容仅适用于iOS 7)及更高版本。

【讨论】:

  • 这个兼容iOS7和iOS6吗?
  • 我认为支持IOS 7。
【解决方案2】:

您必须为每种设备创建单独的故事板。如果您要删除 iPad 故事板,那么您的应用程序将使用 iPhone 的故事板。当您看到屏幕底部的 2x 按钮时,您就会意识到这一点。一切都将被缩放以适应更大的屏幕 - 图形会非常糟糕。

唯一合适的解决方法是将 iPhone Storyboard 中的所有内容复制粘贴到 iPad Storyboard。只需按照接下来的步骤

  1. 打开iPhone.storyboard
  2. CMD+A
  3. CMD+C,
  4. 切换到iPad.storyboard
  5. CMD+V
  6. 您会看到,所有屏幕、转场、属性和动作都已转移到您的新情节提要中。您所要做的就是修复所有元素的框架,以便它们适合新的屏幕尺寸。

别忘了,好的 iPad 应用程序不应该与 iPhone 版本相同。你可以用 iPad 做很多很酷的事情!

【讨论】:

  • 如果 Main_iPad.storyboard 被删除,同意 2x 按钮。然而,就我而言,我仍在使用 Main_iPad(和 Main_iPhone)。只是稍后在应用程序中,我希望 两个 设备都加载 same 故事板(使用 [UIStoryboard storyboardWithName:bundle:])。在这种情况下,它们确实是相似的用例。 iPad UI 或多或少地在 320x480pt 弹出窗口中显示全屏 iPhone UI,以显示相关功能,有点像 iPad 日历应用程序中的 Create Event 弹出窗口。如果两个设备加载完全相同的故事板,运行时是否会出现任何问题?
  • 嗯,我敢肯定,不会有任何问题,但我认为,那个 2x 按钮仍然存在。
猜你喜欢
  • 2015-07-24
  • 1970-01-01
  • 2012-01-08
  • 1970-01-01
  • 2014-09-03
  • 2016-11-09
  • 1970-01-01
  • 2021-08-25
  • 1970-01-01
相关资源
最近更新 更多