【问题标题】:iOS Simulator not displaying correctly in Xcode 6iOS 模拟器无法在 Xcode 6 中正确显示
【发布时间】:2015-04-11 06:18:37
【问题描述】:

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

下图:

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

【问题讨论】:

    标签: ios objective-c xcode simulator


    【解决方案1】:

    问题在于,从您的角度来看,元素的位置适合您在界面构建器中看到的画布,但是一旦运行应用程序,真实的画布就会有不同的尺寸。

    为了管理 UI 元素的位置、大小和其他属性,有一个称为 AutoLayout 的系统。 它非常巧妙,因为它类似于自然语言。 例如“我希望这个元素位于屏幕中间”。 要么 “我希望这个元素距离左角 20 像素,距离该元素上方的元素 57 像素。”

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

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

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

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

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

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

    【讨论】:

    • 非常感谢您的解释。我现在了解它的工作原理,并且发现它的强大程度令人难以置信。谢谢!
    【解决方案2】:

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

    您可以使用界面构建器右下角的图标来获取它们或控制从视图控制器(如按钮、标签等)拖动到包含视图(或任何其他视图控制器)问题。)通常,主视图窗口本身。当您释放时,您现在可以添加约束以将元素相对“附加”到另一个元素。例如,您可以将左侧的东西附加到左侧,将右侧的东西附加到右侧。现在,无论实际设备屏幕的尺寸如何,这些元素都将出现在与设备屏幕相关的位置。

    【讨论】:

    • 一开始我不知道你在说什么,但它让我搜索了自动布局和约束,在阅读了几篇文章和几个教程之后,我终于弄明白了。太感谢了!!我还发现这个视频非常有帮助。 youtube.com/watch?v=IwSTXY0awng 再次感谢您的帮助:)
    猜你喜欢
    • 2015-12-31
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 2014-12-17
    • 1970-01-01
    相关资源
    最近更新 更多