iPhone 纵向模式下的自动布局

Posted

技术标签:

【中文标题】iPhone 纵向模式下的自动布局【英文标题】:Autolayout in iPhone Portrait Mode 【发布时间】:2016-01-04 06:09:12 【问题描述】:

我必须为所有 iPhone 尺寸的纵向模式设计一个应用程序。我正在使用情节提要并使用情节提要本身设置约束。让我感到困惑的是Size Classes。由于我的要求只是 iPhone 肖像,我使用的是 Size Class compact Width|regular Height。我的问题是我可以禁用 Size Classes 导致仅适用于 iPhone 纵向模式。如果是,那么我可以在设计时为所有 iPhone 尺寸禁用尺寸等级。什么是正确的方法?

【问题讨论】:

有关布局和大小类的更多信息,请参阅这些链接。developer.apple.com/library/ios/documentation/UserExperience/… 和 developer.apple.com/library/ios/recipes/…。希望能帮助到你。对于 AutoLayout,你也可以参考这个。raywenderlich.com/50317/… 我已经看过所有的文档和教程,但它只是展示了如何使它与 3-4 个 UIView 一起工作。 【参考方案1】:

直观地说,在尺寸分类之前,故事板 UI 是通过为每个 iPhone 尺寸设计一个单独的界面来设计的。自从出现广泛的设备尺寸以来,尺寸等级已被纳入。考虑到您的应用程序可能必须在旧设备上运行,纵向模式下的 iPhone 之间仍然存在大小差异。因此,您可能必须为每个方向创建一个单独的界面,我没有尝试过。我相信正确的方法是简单地针对您选择的尺寸等级进行设计。

【讨论】:

【参考方案2】:

如果您只是为 iPhone 肖像制作应用程序,则不必使用尺寸等级。您只需要设置大小指标中的适当合约。 这是我的看法。 如果你正在为 iPad 和 iPhone 开发尺寸类是最好的选择。

【讨论】:

【参考方案3】:

Size 类处理多方向(纵向和横向)和不同设备(iPhone 和 iPad)的问题。您无法使用尺寸等级区分 iPhone 的两种不同屏幕尺寸。同样,您不能代表尺寸等级区分 iPad mini(纵向)和 iPad Air(纵向)。

纵向的所有 iPhone 都具有相同的尺寸类行为,即 Compact(width) |常规(高度),无论是 3.5 英寸、4.0 英寸、4.7 英寸还是 5.5 英寸。同样,横向的所有 iPhone 都有 Regular(width) |紧凑(高度)尺寸等级。尺寸等级不是解决您面临的问题的方法。

为了在 iPhone 纵向处理多种屏幕尺寸,最好的办法是使用自动布局。将您的视图与边界固定在一起,以便它们在不同的屏幕上得到拉伸或收缩。同样,将您的标签与它们的超级视图的边界绑定,以便它们也会增长。您还可以使用纵横比约束,这将允许您相对于元素的纵横比增加视图和图像,而不是水平增加它们以最终得到拉长的外观。

如果您不熟悉自动布局,我强烈建议您观看 WWDC2012 的以下会议:

    Introduction to Auto Layouts Auto Layouts by Example Best Practices for Mastering Auto Layouts

【讨论】:

以上是关于iPhone 纵向模式下的自动布局的主要内容,如果未能解决你的问题,请参考以下文章

如何针对不同的 iPhone 屏幕尺寸在纵向和横向中使用自动布局

只有一种布局设计,适合 iPhone 纵向模式下的所有屏幕尺寸

iPhone自动布局图像排列问题

如何使用自动布局在纵向模式下垂直堆叠视图并在横向模式下水平堆叠视图?

横向和纵向模式的自动布局不同的约束

由于纵向尺寸的超视帧,iOS自动布局在横向模式下不正确?