iOS 模拟器无法在 Xcode 6 中正确显示

iOS Simulator not displaying correctly in Xcode 6

我一直很难弄清楚这东西是如何工作的。它是如此随机,我不知道还能尝试什么。我查阅了多篇关于这个问题的文章,每个人都说改变规模。改变比例没有帮助,它与这里发生的事情无关。我不确定这是否与 Xcode 的底部有关,您可以在其中更改尺寸(Any vs Any / Any vs Regular Height,等等...)我问过我在学校的移动开发老师好吧,他也想不通。任何帮助将不胜感激!!

下图:

http://tinypic.com/r/281fw5w/8

你的问题不是缩放。你需要看的是自动布局和约束。

您可以使用界面生成器右下角的图标来获取它们或控制从视图控制器(如按钮、标签等)拖动到包含视图(或任何其他视图控制器)就此而言。)通常,主视图 window 本身。当您发布时,您现在可以将约束添加到 "attach" 相对于其他元素的元素。例如,您可以将左边的东西附加到左侧,将右侧的东西附加到右侧。现在,无论实际设备屏幕的尺寸如何,这些元素都会出现在相对于设备屏幕的那些位置。

问题是从您的角度来看元素的位置对于您在界面生成器中看到的 canvas 是正确的,但是一旦应用程序是 运行,真正的 canvas有不同的维度。

为了管理 UI 元素的位置、大小和其他属性,有一个名为 AutoLayout 的系统。 它非常巧妙,因为它类似于自然语言。 例如 "I want this element to be in the middle of the screen." 要么 "I want this element to be 20 pixels from the left corner and 57 pixels from the element that is above this element."

通过组合这些规则,您基本上可以创建一组布局约束,这些约束会在 运行 时间内应用到视图层次结构中,并且视图布局正确。 Autolayout 允许非常复杂的布局。

您需要考虑的另一个方面是,您可能希望您的应用在从 3.5 英寸 iPhone 到 iPad air 的所有外形尺寸下看起来都很好。 由于这些设备的尺寸差异很大,Apple 引入了一个名为 Size Class 的抽象概念。

大小 Class 是具体大小之上的抽象。具体 iOS 设备具有非常具体的尺寸。但在自然语言中,你经常说它大、小或正常。这就是使用的抽象级别大小 class。

对于每个尺寸 class,您可以有一组特定的自动布局约束。

因此,通过 结合 AutoLayout 和 SizeClasses,Apple 解决了这个问题哦,如何拥有一个应用程序,但仍然可以适应特定的外形尺寸并可以调整它的布局给他们。

在 Xcode6 中,所有 storyboards/xib 文件都默认启用自动布局和大小 classes。 Interface builder 为您提供了一个舒适的环境,您可以在其中通过为每个大小 class 组合创建约束来设置您的布局。