大小类wCompact | hAny被wCompact | hRegular覆盖

Max*_*hev 5 ios autolayout ios8 size-classes

我在Xcode 6中使用大小类获得了奇怪的行为.我没有设法发现它是错误还是文档误读.

问题是:我必须为iPhone 3.5,4,4.7英寸和5.5英寸设备提供不同的布局.

我创建了一个简单的示例来演示错误:标签有2个约束 - 容器中的中心X和Y. 在此输入图像描述

我已将Y对齐约束的常量设置100为for wCompact|hAny-100for wCompact|hRegular. 在此输入图像描述

ui在界面构建器中看起来不错,但在预览中看不到 - wCompact|hRegular参数覆盖wCompact|hAny.

在此输入图像描述 在此输入图像描述 在此输入图像描述 在此输入图像描述

当您想要更改vc的大小时,我会对IB中出现的弹出窗口中的信息感到困惑.

在此输入图像描述 在此输入图像描述

那么有没有办法为小型iPhone指定约束,并为大型5.5屏幕设置不同的约束?

gab*_*ler 2

这是所需的行为,您选择“任意宽度” | 任何高度组合,以做出适用于所有可能的设备尺寸和方向的布局决策,但选择紧凑宽度| 常规高度组合,用于指定仅适用于类似于纵向 iPhone 设备的尺寸的布局更改。

因此Compact Width | Any Height参数将覆盖Any Width | Any Height纵向和横向 iPhone 设备的参数。Compact Width | Regular Height参数将覆盖Compact Width | Any Height纵向 iPhone 设备的参数。一般规则是特定尺寸类别覆盖更一般的尺寸类别。在您的情况下,如果旋转到横向,标签原点 Y 位于中心原点 Y 上方,距离为 100,该距​​离尚未被覆盖。