xib文件不起作用的大小类



目前,我正在开发iOS 7&iOS 8。

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

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

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

  3. 为了减少任何行代码,我使用了自iOS8以来可用于视图的新功能"使用大小类"。我在XiB文件中为这两个元素定义了"大小类"。

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

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

这种机制在适用于iphone和ipad的iOS 8上运行得很好,但在iOS 7上则不然。然而,如果我直接将这些大小类应用到故事板中包含的视图中,它适用于iOS7。

有人能解释一下为什么我的size类在iOS 7上被定义为XiB文件时不起作用吗?

致以最良好的问候和衷心的感谢,

洛伦佐。

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

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

XIB文件上的大小类不向后兼容是xCode 6.1.1上修复的一个错误。奇怪的是,它没有出现在补丁注释中,但我可以确认,我正在使用一个xib为iPad和iPhone上的一个手机提供两种不同的布局。这是我从6.0.1更新到6.1.1后才开始工作的。

情节串连板上类的向后兼容性限制仍然适用,但它们可以绕过。

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

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

感谢@IvanKvyatkovskiy

最新更新