5

我在 Xcode 6 中的大小类出现了奇怪的行为。我没有设法找到它是错误还是文档误读。

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

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

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

ui 在界面生成器中看起来不错,但在预览中却不好看 -wCompact|hRegular参数覆盖wCompact|hAny

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

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

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

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

4

1 回答 1

2

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

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

于 2014-10-20T02:08:41.127 回答