iOS中的自动布局向后兼容性

iOS中的自动布局向后兼容性,ios,xcode,autolayout,backwards-compatibility,Ios,Xcode,Autolayout,Backwards Compatibility,我在苹果的文档()中找不到支持此功能的最低iOS版本,也找不到任何与iOS相关的帖子。。。也许它只取决于Xcode版本,而不取决于iOS版本?我需要开发一个iOS应用程序,该应用程序应该兼容最新的iOS版本到4.3 感谢您在2012年WWDC上引入了Autolayout,并且从iOS 6开始支持它。它肯定不能与iOS 4.3配合使用 我强烈建议您考虑一下这些天是否真的需要支持iOS 4.3。我们现在可能离iOS 7很近了,而你支持iOS 4.3的速度(从技术上讲)将落后几年。我了解目前支持iOS

我在苹果的文档()中找不到支持此功能的最低iOS版本,也找不到任何与iOS相关的帖子。。。也许它只取决于Xcode版本,而不取决于iOS版本?我需要开发一个iOS应用程序,该应用程序应该兼容最新的iOS版本到4.3


感谢您在2012年WWDC上引入了Autolayout,并且从iOS 6开始支持它。它肯定不能与iOS 4.3配合使用


我强烈建议您考虑一下这些天是否真的需要支持iOS 4.3。我们现在可能离iOS 7很近了,而你支持iOS 4.3的速度(从技术上讲)将落后几年。我了解目前支持iOS 4.3的应用程序,但我不认为现在就开始开发支持iOS 4.3的应用程序是一个好主意。

快速找到答案的一种方法是直接设置XIB/情节提要文件的部署目标。默认情况下,它设置为最新的SDK版本。打开XIB/SB,在文件检查器(右面板)中,选择4.3(或任何您喜欢的)作为部署目标

如果启用自动布局,Xcode将显示该文件的“非法配置”错误:

正如你所看到的,它是iOS 6+唯一。自动布局在运行时使用新的API,因此使用最新的Xcode版本没有帮助,并且不能在XIB中有条件地使用自动布局。然而,对于不同的系统版本,您可以有单独的XIB,但听起来需要做很多(维护)工作

设置正确的部署目标还有另一个好处:如果使用比部署目标晚引入的类,将收到警告


是的,我知道iOS 4.3的支持会有很多技术缺陷,在开发过程中会增加复杂性,但我被赋予了这一要求。谢谢你的回答还有一个问题。。。是否可以签入当前运行的iOS版本的代码,并在版本为6+时利用自动布局?或者干脆我根本不能使用这个功能?从未尝试过,但我认为这根本不是一个好主意。你可能需要做两次这项工作。