Xcode 6.1 Interface Builder未根据设备类型显示元素

时间:2014-11-25 10:28:43

标签: ios xcode interface-builder size-classes

昨晚我在Interface Builder中使用大小类。我创建了一个新的xib文件并添加了两个标题为" iPhone"和" iPad"。目的是" iPhone"所有iPhone设备和" iPad"所有iPad设备上的按钮。

一切都很好,它显示了所有设备的预期结果。

但问题是iPad 2(iOS 7.0.4)上的按钮标题为" iPhone"正在展示。 我已经测试了以下显示正确结果的设备。

设备:

1)iPhone 3,4和5.

2)iPad 2(iOS 8.1.1)

为此我遵循了以下步骤:

1)使用xib创建新的视图控制器文件。(文件 - >新 - >文件 - > Cocoa触摸类 - >设置"子类:" as(例如)UIViewController并检查"还要创建XIB文件"。)

2)将Interface Builder窗格更改为" wConpact hRegular"。

3)添加标题为#34; iPhone"和约束,因为它应该看起来水平居中并从顶部150px。

4)将Interface Builder窗格更改为" wRegular hRegular"。

5)添加标题为#34; iPad"和约束,因为它应该看起来水平居中并从顶部150px。

我正在使用:

Xcode:6.1

基于SDK:8.1

部署目标:6.1

设备:通用

使用自动布局:已选中

使用尺寸类:已选中

结果截图:

1st)iPhone 5s

2nd)iPad 2(iOS 8.1.1)

3rd)iPad 2(iOS 7.0.4)

iPhone 5s

iPad 2 (iOS 8.1.1)

iPad 2 (iOS 7.0.4)

重要的是如果我使用Storyboard进行设计是没有问题的。 我不明白为什么会这样?是否有我遗失的财产或其iOS错误。

请建议。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

由于iOS 6和7不支持自适应布局的大小类,因此它将使用默认的'任意/任何'大小等级。

在您的情况下,故事板认为默认大小类有一个按钮,其中包含" iPhone"因此,使用iOS 7的iPad将显示iPhone版本。

答案 1 :(得分:0)

根据Dave DeLong' here,我将遵循此

在将应用程序部署到iOS 7时,Xcode以两种方式编译故事板:

1)对于iPhone,故事板被编译为"紧凑宽度,常规高度"

2)对于iPad,故事板被编译为" wRegular-hRegular"