2

目前,我正在开发 iOS 7 和 iOS 8 支持的通用应用程序(iPhone / iPad)。

这是我关于尺寸等级的问题:

  1. 我的导航栏被定义为 XiB 文件(NavBarView.xib)

  2. 在这个文件中,我有一个我只想在 iPhone 模式下显示的 UIButton 和一个仅在 iPad 模式下显示的 UISearchBar。

  3. 为了在没有任何行代码的情况下处理该问题,我使用了自 iOS 8 以来可用于视图的新功能“使用大小类”。我在 XiB 文件中为这两个元素定义了“大小类”。

    • 用于 Ipad 的 UISearch:安装用于除紧凑宽度/任意高度 (wC hAny) 之外的所有布局

    • UIButton fo Iphone:并非所有布局都安装,但具有紧凑的宽度/任何高度(wC hAny)

这种机制在适用于 iphone 和 ipad 的 iOS 8 上运行良好,但不适用于 iOS 7。但是,如果我将这些尺寸类直接应用到包含在情节提要中的视图中,它适用于 iOS 7。

谁能解释一下为什么我的尺寸类在 iOS 7 上定义为 XiB 文件时不起作用?

最好的问候和非常感谢,

洛伦佐。

4

3 回答 3

1

iOS 7 几乎不支持与大小类有关的任何事情。这里有一些很好的答案:Xcode 6 自适应 UI 如何向后兼容 iOS 7 和 iOS 6?

于 2014-10-07T19:07:32.907 回答
0

添加作为答案,因为 saadnib 对原始问题的评论对我有很大帮助。

XIB 文件上的大小类不向后兼容是已在 xCode 6.1.1 上修复的错误。奇怪的是,它不在补丁说明中,但我可以确认我正在使用单个 xib 为 iPad 和 iPhone 上的单元格提供 2 种不同的布局。这只有在我从 6.0.1 更新到 6.1.1 后才开始工作。

故事板上的类的向后兼容性限制仍然适用,但可以解决。

于 2015-01-13T16:51:17.817 回答
0

想出了另一个选择。如果将 xibs 视图作为子视图添加到UIApplication.shared.keyWindow.

视图必须在UIViewController视图层次结构中才能支持大小类。

感谢@IvanKvyatkovskiy

于 2018-01-17T12:40:32.807 回答