【问题标题】:Auto layout backwards compatibility in iOSiOS 中的自动布局向后兼容性
【发布时间】:2013-06-02 16:09:14
【问题描述】:

我在 Apple 的文档 (Cocoa Auto Layout Guide) 中找不到支持此功能的最低 iOS 版本,也没有任何与 iOS 相关的帖子……也许它只取决于 Xcode 版本,而不取决于 iOS 版本?我需要开发一个应该兼容从最新的 iOS 版本到 4.3 的 iOS 应用

谢谢

【问题讨论】:

    标签: ios xcode autolayout backwards-compatibility


    【解决方案1】:

    快速找出这一点的一种方法是直接设置 XIB/Storyboard 文件的部署目标。默认情况下,它设置为最新的 SDK 版本。打开 XIB/SB,在 File Inspector(右侧面板)中,选择 4.3(或任何您喜欢的)作为部署目标。

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

    如您所见,它仅适用于 iOS 6+。 Auto Layout 在运行时使用新的 API,因此使用最新的 Xcode 版本没有帮助,并且您不能在 XIB 中有条件地使用 Auto Layout。但是,您可以为不同的系统版本使用单独的 XIB,但这听起来需要很多(维护)工作。

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

    【讨论】:

      【解决方案2】:

      自动布局是在 WWDC 2012 上推出的,并且从 iOS 6 开始支持。它肯定不适用于 iOS 4.3。

      我强烈建议您考虑一下您现在是否真的需要支持 iOS 4.3。我们现在可能非常接近拥有 iOS 7,而您将落后于(从技术上讲)支持 iOS 4.3 的数年。我了解当前支持 iOS 4.3 的应用程序,但我认为现在开始开发应用程序时考虑到 iOS 4.3 支持并不是一个好主意。

      【讨论】:

      • 是的,我知道从 iOS 4.3 开始支持会有很多技术缺陷,并且会增加开发的复杂性,但我有这个要求。感谢您的回答
      • 还有一个问题...是否可以签入当前运行的 iOS 版本的代码,如果版本为 6+,则可以利用自动布局?还是根本无法使用该功能?
      • 从未尝试过,但我认为这根本不是一个好主意。你可能需要做两次工作。
      猜你喜欢
      • 2012-09-06
      • 2018-06-26
      • 2015-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-15
      相关资源
      最近更新 更多