如何使视图的所有元素按比例输入到屏幕(xCode 6,使用swift)?

时间:2014-11-20 23:14:21

标签: ios interface-builder

我正在试图弄清楚如何使我的所有元素,如我的按钮和标签适合每个iPhone屏幕尺寸,包括iPhone 6 plus,iPhone 6和iPhone 5以及其他版本的iPhone 5我怎样才能做到这一点?假设我有3个按钮,我希望在屏幕中间居中,一个在另一个上面。

1 个答案:

答案 0 :(得分:0)

您列出的所有屏幕都属于同一类型。您的应用程序在所有相同类型的屏幕上看起来都是一样的,无需额外的工作。然而,这不是故事的结局。

iOS实际上只有两种屏幕类型。第一款包括iPhone 4和iPad之前的所有iPhone。另一种类型仅包括iPhone 5+。您应该在应用程序中支持这两种类型。实际上,Apple不会让你发布一个在两种屏幕类型上看起来不太好的应用程序 - 因此需要为3.5'和4'屏幕提供屏幕截图 - 它们代表每种类型。此外,您需要确保应用程序在iPad上正常运行,即使您不打算专门支持iPad。 iPhone的所有应用程序都应该在iPad上运行,但如果该应用程序是专门为iPad设计的,则不需要在iPhone / iPod上运行。

这意味着这一点 - 如果您使用Storyboard与AutoLayout,模拟iPhone 5+屏幕类型并且没有手动定义适当的约束,您将完全松开屏幕的底部而没有任何错误或任何东西当应用程序运行时早期的iPhone(如iPhone 4s也获得iOS 8更新)或iPad。它会被切断。

您应该使用AutoLayout来定义屏幕边界和元素本身之间的约束。关于如何处理差异有两种选择:屏幕高度:

  1. 一个或多个元素具有灵活的高度,以确保它们伸展以填充iPhone 5+的额外空间,同时在iPhones< = 4和iPad上看起来也很好。这将要求您定义屏幕顶部之间的垂直空间,从顶部到底部的所有元素以及屏幕底部。为您不想拉​​伸的元素定义高度约束。这也是使用滚动视图使用AutoLayout的正确方法。
  2. 或者将一个或多个元素锚定到屏幕的顶部或底部,并为其下方/上方的元素指定垂直约束。如果你想这样做,你需要指定所有元素的高度。
  3. 一旦您开始在Storyboard上手动指定约束,XCode会尝试通过让您知道它是否需要更多约束或您是否愿意来帮助您。缺乏警告是指向正确道路的良好指标。

    通过在元素上按Crtl + Left Mouse click来定义约束,然后将鼠标拖向约束方向。您可能想要做一个简单的教程来解决这个问题。