如何在 iOS 6 中使用 NSLayoutConstraint?

Posted

技术标签:

【中文标题】如何在 iOS 6 中使用 NSLayoutConstraint?【英文标题】:How to use NSLayoutConstraint in iOS 6? 【发布时间】:2012-09-23 04:05:01 【问题描述】:

我的应用应该同时支持使用 ios 5 和 iOS 6 的 iPhone 分辨率(5 和更早版本)。当我在 IB 中使用自动布局时,在 iOS 5 上应用崩溃如下:link

所以,我尝试在代码中使用 NSLayoutConstraint,但还没有成功。

子问题:

    我在 viewDidLoad 方法中添加了约束,但是正确吗? updateViewConstraints 是否由框架调用?我从未见过它被调用过。 我尝试使用苹果文档中的示例,但无法查看。

有人知道怎么做吗?

PS:我知道可以通过设置框架手动实现,但我想使用 NSLayoutConstraints。

UDP:是的,我知道,这就是我在代码中使用 NSLayoutConstraint 的原因。我可以为确定iOS版本创造条件。问题是关于iOS6的。

【问题讨论】:

【参考方案1】:

AutoLayout 功能仅与 iOS6 兼容,在 iOS5 中不支持。因此崩溃

如果您希望您的应用与 iOS5 兼容,则不能在您的 XIB 文件中使用 AutoLayout。

您只能使用较旧的方法,例如 AutoResizingMask(无论如何,这对于大多数情况来说通常就足够了)。

【讨论】:

以上是关于如何在 iOS 6 中使用 NSLayoutConstraint?的主要内容,如果未能解决你的问题,请参考以下文章

如何在仅在 iOS-6 中支持横向方向的应用程序中使用 UIImagePickerController?

我应该如何在 iOS 7 中使用具有 iOS 6 风格的 UIButtons?

如何在 Xcode 5 中使用不同的图像 iOS 6 和 iOS 7 [关闭]

如何在 iOS 6 中使用 UIPopoverBackgroundView 呈现透明弹出框

在 + UIDocumentInteractionController 中打开:如何在 SDK iOS 6 中过滤选项(不推荐使用 canPerformActions)

如何在 Mac OSX 10.6.4 Snow leopard 中使用 iOS 5 安装 xcode 4.2