我在Xcode 6中使用大小类获得了奇怪的行为。我没有设法找到它是错误还是文档误读。
问题是:我必须为iPhone 3.5,4,4.7英寸和5.5英寸设备提供不同的布局。
我创建了一个简单的示例来演示错误:标签有2个约束 - 容器中的中心X和Y.
我已将100
的Y对齐约束常量设置为wCompact|hAny
,-100
设置为wCompact|hRegular
。
ui在界面构建器中看起来不错,但在预览中看不到 - wCompact|hRegular
参数覆盖wCompact|hAny
。
当您想要更改vc的大小时,我对IB中出现的弹出窗口中的信息感到困惑。
那么有没有办法为小型iPhone指定约束,并为大型5.5屏幕设置不同的?
答案 0 :(得分:2)
这是所需的行为,您选择任意宽度|任何高度组合,用于做出适用于所有可能的设备尺寸和方向的布局决策,但选择紧凑宽度|常规高度组合,用于指定仅适用于纵向类似iPhone设备的尺寸的布局更改。
因此,Compact Width | Any Height
参数将以纵向和横向方式覆盖iPhone设备的Any Width | Any Height
参数。 Compact Width | Regular Height
参数将以纵向方式覆盖iPhone设备的Compact Width | Any Height
参数。一般规则是特定大小类覆盖更一般的大小。在您的情况下,如果您旋转到横向,标签原点Y位于中心原点Y上方,距离为100,尚未覆盖。