8

我正在为 iOS7 和 8 iPhone 开发。由于 iOS7 不支持紧凑高度尺寸类,我认为解决此问题的共识方法是对横向 iPhone 布局使用任意尺寸类,并使用纵向紧凑宽度常规高度 (cWrH) 尺寸类纵向 iPhone 布局。

我在 any-any 中对视图设置了约束,然后修改 cWrH 中的约束常量以特定于该大小类。然而,iOS7 设备以及 Xcode 预览忽略了 any-any 约束,并将 cWrH 约束用于纵向和横向。

我不知道为什么会这样。我要做的就是根据方向设置不同的约束。

这可以使用最新的 Xcode 6.0.1 轻松复制。

半相关:Xcode 6 自适应 UI 如何向后兼容 iOS 7 和 iOS 6?

截图如下:

矩形的 x 和 y 在 Any-Any 中为 0 y=100 仅适用于 cWrH 尺寸等级

4

1 回答 1

0

根据您的问题,您所做的是在 Any-Any Size Class 中给出了前导、顶部、高度和宽度限制。

所以现在它的位置对于任何横向和纵向的设备都是固定的。现在,当您将尺寸等级更改为紧凑宽度并更改顶部约束时,它将同时影响纵向和横向。

您需要使用带有 Any-Any 的 size 类将控件放置在 View 控制器中并设置您希望在纵向和横向中保留的那些约束。

例如:如果您想保持高度和宽度固定,请在 Any-Any Size Class 中给出这些约束。

在 Any-Any Size Class 中设置约束将使纵向和横向的约束保持相似。

1.) 在纵向中设置前导和顶部约束,您可以使用width-Compact、height-Regular

2.) 在横向设置前导和顶部约束,您可以使用width- Any,height-Compact

访问下面的链接,它有很好的解释,您与使用尺寸类的自动布局相关的大部分问题都将得到解决:

http://mathewsanders.com/designing-adaptive-layouts-for-iphone-6-plus/

希望这能解决你的问题。

于 2015-02-24T03:25:37.310 回答