xib文件的大小类不起作用

时间:2014-09-15 16:36:31

标签: ios ios7 swift ios8 size-classes

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

以下是关于尺寸等级的问题:

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

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

  3. 为了处理任何行代码的白化,我使用了新功能"使用大小类"自iOS 8开始可用于视图。我定义了"大小类"对于我的XiB文件中的这两个元素。

    • UISearch for Ipad:已安装所有布局,紧凑宽度/任何高度(wC hAny)

    • Iphone的UIButton:没有为所有布局安装,但紧凑宽度/任何高度(wC hAny)

  4. 此机制适用于iphone和ipad的iOS 8,但不适用于iOS 7.但是,如果我将这些大小类direclty应用于故事板中包含的视图,则适用于iOS 7。

    有没有人可以解释为什么我的尺寸类在iOS 7上被定义为XiB文件时无效?

    最诚挚的问候和非常感谢,

    洛伦佐。

3 个答案:

答案 0 :(得分:1)

iOS 7支持与大小类无关。这里有一些好的答案:How can Xcode 6 adaptive UIs be backwards-compatible with iOS 7 and iOS 6?

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

想出另一个选择。如果将xibs视图作为子视图添加到UIApplication.shared.keyWindow,则大小类将不起作用。

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

感谢@IvanKvyatkovskiy