【问题标题】:Xcode 6.1 Interface Builder not showing elements according to device typeXcode 6.1 Interface Builder 未根据设备类型显示元素
【发布时间】:2015-01-23 07:25:45
【问题描述】:

昨晚我在 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 Touch 类 -> 将“子类:”设置为(例如)UIViewController 并选中“同时创建 XIB 文件”。)

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

3) 添加了标题为“iPhone”和约束的按钮,因为它应该从顶部 150 像素水平居中看。

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

5) 添加了标题为“iPad”和约束的按钮,因为它应该看起来水平居中并从顶部 150 像素开始。

我正在使用:

Xcode:6.1

基于 SDK:8.1

部署目标:6.1

设备:通用

使用自动布局:选中

使用尺寸类:选中

结果截图:

第一)iPhone 5s

第二个)iPad 2(iOS 8.1.1)

第 3 台 iPad 2 (iOS 7.0.4)

重要的是如果我用Storyboard来设计是没有问题的。 我不明白为什么会这样?是否有任何我遗漏的属性或其 iOS 错误。

请建议。 提前致谢。

【问题讨论】:

  • this
  • @Raptor...感谢分享这个重要的链接。这对我有很大帮助。

标签: ios xcode interface-builder size-classes


【解决方案1】:

根据 'Dave DeLong' here,我会关注这个

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

1) 对于 iPhone,情节提要被编译为“紧凑宽度,常规高度”

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

【讨论】:

    【解决方案2】:

    由于 iOS 6 和 7 不支持 Adaptive Layout 的 Size Classes,它将使用默认的“Any/Any”尺寸类别。

    在您的情况下,情节提要认为默认尺寸类有一个带有“iPhone”的按钮,因此装有 iOS 7 的 iPad 将显示 iPhone 版本。

    【讨论】:

    • @Raptor...感谢您的快速回复。但问题是它在故事板中运行良好,而不是在 xib 中。
    • 需要澄清:你的故事板现在有什么?
    • 与我的 xib 包含的内容相同,只是视图控制器的名称不同。
    猜你喜欢
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 2012-11-23
    • 1970-01-01
    相关资源
    最近更新 更多