目前,我正在开发iOS 7及更高版本支持的通用应用程序(iPhone / iPad)。 iOS 8。
以下是关于尺寸等级的问题:
我的导航栏被定义为XiB文件(NavBarView.xib)
在这个文件中,我有一个UIButton,我只想在iPhone模式下显示,而UISearchBar只在iPad模式下显示。
为了处理任何行代码的白化,我使用了新功能"使用大小类"自iOS 8开始可用于视图。我定义了"大小类"对于我的XiB文件中的这两个元素。
UISearch for Ipad:已安装所有布局,紧凑宽度/任何高度(wC hAny)
Iphone的UIButton:没有为所有布局安装,但紧凑宽度/任何高度(wC hAny)
此机制适用于iphone和ipad的iOS 8,但不适用于iOS 7.但是,如果我将这些大小类direclty应用于故事板中包含的视图,则适用于iOS 7。
有没有人可以解释为什么我的尺寸类在iOS 7上被定义为XiB文件时无效?
最诚挚的问候和非常感谢,
洛伦佐。
答案 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