目前,我正在开发iOS 7&iOS 8。
以下是我关于尺码等级的问题:
-
我的导航栏被定义为XiB文件(NavBarView.XiB)
-
在这个文件中,我有一个UIButton,我想只在iPhone模式下显示,还有一个UISearchBar,只在iPad模式下显示。
-
为了减少任何行代码,我使用了自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